FixForwarding
FFdb
http://fixforwarding.org/wiki/Main_Page
MediaWiki 1.39.10
case-sensitive
Media
Special
Talk
User
User talk
FixForwarding
FixForwarding talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Main Page
0
1
1
2008-02-25T19:34:38Z
MediaWiki default
0
wikitext
text/x-wiki
<big>'''MediaWiki has been successfully installed.'''</big>
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]
* [http://mail.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
928e1deea259c70afc3513c66f29f3fcd740d8bf
1405
1
2008-02-25T19:39:14Z
Ale
1
/* Getting started */
wikitext
text/x-wiki
<big>'''MediaWiki has been successfully installed.'''</big>
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
Apparently works...
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]
* [http://mail.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
d7f3d08516d601587ef6ce41ee1518d880be3072
1406
1405
2008-09-06T13:02:10Z
Ale
1
Initial text
wikitext
text/x-wiki
<big>'''Once upon a time SMTP was a simple protocol...'''</big>
Forwarding is a generally used but not thoroughly considered feature of Internet email architecture. Admins and power users have the ability to unilaterally add ''forwarding recipes'' onto a server, so that email messages destined to a given mailbox are forwarded or exploded to the recipients thus configured.
In the horrid mess that is Internet Email nowadays, a jungle where illegal spam messages largely outweigh legitimate ones, forwarding stands out as a prominent problem. Let's fix it.
== The problem ==
Savage forwarding produces quite some shortcomings:
* Recipients have no means to directly control the forwarding mechanism.
* Responsibility for injecting spam becomes ambiguous.
* Bounces may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
== The solution: Standardize forwarding practices ==
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. It must be designed so as to reflect this property; in particular, there must be a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
Just think about guidelines and laws that talk about the much discussed ''opt-in'' and ''opt-out'' methods for delivering commercial newsletters, and consider how could such kind of rules be possibly enforced in the absence of any standard record telling if and when someone actually ''did'' opt in or out. Are we serious about using email?
c98e6dbc264cc9d1901fbf67c9b2fb12e1c7de46
1420
1406
2008-11-03T15:49:43Z
Ale
1
add links
wikitext
text/x-wiki
<big>'''Once upon a time SMTP was a simple protocol...'''</big>
[[Forwarding]] is a generally used but not thoroughly considered feature of Internet email architecture. Admins and power users have the ability to unilaterally add ''[[forwarding recipe]]s'' onto a server, so that email messages destined to a given mailbox are forwarded or exploded to the recipients thus configured.
In the horrid mess that is Internet Email nowadays, a jungle where illegal spam messages largely outweigh legitimate ones, forwarding stands out as a prominent problem. Let's fix it.
== The problem ==
Savage forwarding produces quite some shortcomings:
* Recipients have no means to directly control the forwarding mechanism.
* Responsibility for injecting spam becomes ambiguous.
* Bounces may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
== The solution: Standardize forwarding practices ==
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. It must be designed so as to reflect this property; in particular, there must be a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
Just think about guidelines and laws that talk about the much discussed ''opt-in'' and ''opt-out'' methods for delivering commercial newsletters, and consider how could such kind of rules be possibly enforced in the absence of any standard record telling if and when someone actually ''did'' opt in or out. Are we serious about using email?
7acdd6e6150a25081628bcf8b7a76e1b96914713
1443
1420
2008-12-05T11:05:35Z
Ale
1
/* The solution: Standardize forwarding practices */ link to the solution proposed
wikitext
text/x-wiki
<big>'''Once upon a time SMTP was a simple protocol...'''</big>
[[Forwarding]] is a generally used but not thoroughly considered feature of Internet email architecture. Admins and power users have the ability to unilaterally add ''[[forwarding recipe]]s'' onto a server, so that email messages destined to a given mailbox are forwarded or exploded to the recipients thus configured.
In the horrid mess that is Internet Email nowadays, a jungle where illegal spam messages largely outweigh legitimate ones, forwarding stands out as a prominent problem. Let's fix it.
== The problem ==
Savage forwarding produces quite some shortcomings:
* Recipients have no means to directly control the forwarding mechanism.
* Responsibility for injecting spam becomes ambiguous.
* Bounces may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
== The solution: Standardize forwarding practices ==
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
Just think about guidelines and laws that talk about the much discussed ''opt-in'' and ''opt-out'' methods for delivering commercial newsletters, and consider how could such kind of rules be possibly enforced in the absence of any standard record telling if and when someone actually ''did'' opt in or out. Are we serious about using email?
c124e6bdc58af0952079e93f78487c4ced9fed57
FixForwarding:Copyrights
4
2
1407
2008-09-07T18:00:08Z
Ale
1
scratch text
wikitext
text/x-wiki
FixForwarding.org content is available under GFDLv1.2
636cd69ecf6ffc47d7c59876c46e8a5161b2aa8c
1409
1407
2008-09-08T08:04:51Z
Ale
1
expanded
wikitext
text/x-wiki
The content of this site is copyright of FixForwarding.org and is available as stated below. This means that each contributing author agrees to submit content using those terms. In this respect, FixForwarding.org is an abstract entity that stands for the set of Authors that contributed to the resulting "joint work".
Permission is granted to copy, distribute and/or modify the contents of this site under the terms of the [http://www.gnu.org/licenses/fdl-1.2.html#TOC1 GNU Free Documentation License, Version 1.2] or any later version published by the [http://www.fsf.org/ Free Software Foundation]; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license can be following the links in this paragraph.
01dd03e1e26f671001a6633521011388b5b10807
1410
1409
2008-09-08T11:57:49Z
Ale
1
wording
wikitext
text/x-wiki
The content of this site is copyright of FixForwarding.org, and is available as stated below. This means that Authors agree to submit their contribution using such terms. In this respect, FixForwarding.org is an abstract entity that stands for the set of Authors who have contributed to the resulting "joint work".
Permission is granted to copy, distribute and/or modify the contents of this site under the terms of the [http://www.gnu.org/licenses/fdl-1.2.html#TOC1 GNU Free Documentation License, Version 1.2] or any later version published by the [http://www.fsf.org/ Free Software Foundation]; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license can be following the links in this paragraph.
323e9ed6fa6c2d2e94906d66eefcc0bb5c4169e4
Help:Editing
12
4
1411
2008-09-08T13:58:15Z
Ale
1
Initial text
wikitext
text/x-wiki
FixForwarding uses [http://www.mediawiki.org/ MediaWiki] software. However, that software currently ships with the ''Help'' section in a blank state. Please consult the corresponding sections present in full blown projects using the same software. In particular, [[wp:Wikipedia:How to edit a page]] and [[wp:Wikipedia:Cheatsheet]].
061e3e2f44a67a808842332cf0f930595be1eab3
1412
1411
2008-09-08T13:59:10Z
Ale
1
wikitext
text/x-wiki
FixForwarding uses [http://www.mediawiki.org/ MediaWiki] software. However, that software currently ships with the ''Help'' section in a blank state. Please consult the corresponding sections present in full blown projects using this same wiki software. In particular, [[wp:Wikipedia:How to edit a page]] and [[wp:Wikipedia:Cheatsheet]].
6970cf68ba1deb72c2bf3d6155db230bc6589dae
FixForwarding:About
4
5
1413
2008-09-08T14:06:40Z
Ale
1
Initial text
wikitext
text/x-wiki
FixForwarding.org is a web site dedicated to stating the problem of Email forwarding, devising possible solutions and possibly implementing them using publicly available server software. That is, to standardize email forwarding.
dbda2ae8dabe3cfb658c689f9cc6712158cae255
FixForwarding:Privacy policy
4
6
1414
2008-09-08T14:26:14Z
Ale
1
Initial text
wikitext
text/x-wiki
== Visitors ==
Simply visiting the web site does not expose your identity publicly. However, regular access logs remain on the server for the prescribed amount of time. The logs may contain the IP address you used, your browser's name, version, language setting, and possibly the referral URL.
== Authors ==
When you edit any page in the wiki, you are publishing a document. This is a public act, and you are identified publicly with that edit as its author. Any content that you contribute will be made available under the GNU Free Documentation License (see [[FixForwarding:Copyrights]]).
You are required to log in before you can publish in the wiki.
If you are logged in, you will be identified by your user name. This may be your real name if you so choose, or you may choose to publish under a pseudonym, whatever user name you selected when you created your account.
Account creation currently requires a confirmed email address.
1a80c692860bf23ea5e55dbe805d6f37a7e97409
1417
1414
2008-09-08T17:26:53Z
Ale
1
Added privacy clause and topics subsection
wikitext
text/x-wiki
Personally identifiable data is submitted to this site according to the [http://www.cdt.org/privacy/eudirective/EU_Directive_.html European directives on the protection of individuals with regard to the processing of personal data]. In that respect, data is processed locally on a secured server and will not be made available to third parties except in case of ''i)'' explicit request of the data subject, or ''ii)'' compulsory request from law enforcement.
The controller as well as the responsible for the data processing is the webmaster[[Image:at_sign.png|14px|bottom| at]]fixforwarding.org, who can be identified via the public ''whois'' database and can be contacted at the given email address.
== Visitors ==
Simply visiting the web site does not expose your identity publicly. However, regular access logs remain on the server for the prescribed amount of time. The logs may contain the IP address you used, your browser's name, version, language setting, and possibly the referral URL.
== Authors ==
When you edit any page in the wiki, you are publishing a document. This is a public act, and you are identified publicly with that edit as its author. Any content that you contribute will be made available under the GNU Free Documentation License (see [[FixForwarding:Copyrights]]).
You are required to log in before you can publish in the wiki.
If you are logged in, you will be identified by your user name. This may be your real name if you so choose, or you may choose to publish under a pseudonym, whatever user name you selected when you created your account.
Account creation currently requires a confirmed email address. It is not published nor disclosed except as mentioned above.
== Topics ==
This site is devoted to the standardization of email forwarding. As email is a basic mean of human communication, almost any topic may possibly fit into the discussion. In particular, non-technical arguments pertinent to communication in general are welcome. However, this is not a generic blog nor an encyclopedia, and a precise relevance is required.
Non-pertinent contributions will be deleted. In addition, the webmaster reserves the right to eradicate from the site any morally offensive or otherwise illegal material, as well as the account(s) where it originated from.
7e81c82caec2418640886267743fa234143a54fd
FixForwarding:General disclaimer
4
7
1415
2008-09-08T14:50:42Z
Ale
1
Initial text
wikitext
text/x-wiki
The content of this site is being provided freely, and no kind of agreement or contract is created between you and the owners or users of this site, the owners of the servers upon which it is housed, individual contributors to these pages, or project administrators, sysops or anyone else connected with this project subject to your claims against them directly. You are granted a limited license to copy anything from this site; it does not create or imply any liability whatsoever on the part of FixForwarding.org in the person of any of its authors, agents, organizers or other users.
Any of the trademarks, service marks, collective marks, design rights, personality rights or similar rights that are mentioned, used or cited on this site are the property of their respective owners. Unless otherwise stated, FixForwarding.org is neither endorsed by nor affiliated with any of the holders of such rights, nor can it grant rights to use otherwise protected materials. ''Your use of any such incorporeal property is at your own risk.''
Although this site prohibits the submission of copyrighted work without permission, it cannot be responsible for any specific violation that may gatecrash unnoticed. Likewise, since this site is dedicated to the discussion of technical and social problems in Internet Email, it does not want to host any morally offensive content; however, it cannot guarantee that intruders will not be able to circumvent its policy.
9affde7346795c8b01456f8fa6178d9acae5f6b9
File:at sign.png
6
8
1416
2008-09-08T17:17:45Z
Ale
1
the strudel, copied from MediaWiki's svg 14px thumb
wikitext
text/x-wiki
the strudel, copied from MediaWiki's svg 14px thumb
1b09465815cd1f28a801922484d4e03cd255ebbd
Forwarding
0
9
1418
2008-11-03T12:47:21Z
Ale
1
Definition of forwarding
wikitext
text/x-wiki
Mail '''forwarding''' is the act of transferring a message from the server where the message recently arrived to another server that is deemed nearer to the intended recipient(s).
== Meaning of the term in this site ==
We focus on two types of message transferring that servers do automatically upon receiving a message: possibly altering the envelope or leaving it intact.
=== Forwarding with a new envelope ===
The receiving server finds a [[forwarding recipe]] corresponding to one of the message's recipient addresses, and it honors it by
* replacing the recipient address with the ones listed in the recipe, and
* replacing the ''sender address'', according to the recipe's policy.
The server address defines the behavior of the email system in the case of delivery failures: Even if the next server will accept the forwarded message, a delivery failure may occur further downstream. In that case, a failure notice should be delivered to the mailbox defined by setting the sender address at this stage. Therefore, there are a few considerations that may affect the policy:
# Should the forwarding recipe be modified as a consequence of delivery failures?
# Should the replaced recipient addresses be made known to the upstream sender?
This action is described in section 3.9.2 of <nowiki>RFC 5321</nowiki>, ''List''. Note that the preceding section 3.9.1 of that RFC, ''Alias'', describes a forwarding method useful for ''intra-domain'' forwarding. See below.
=== Forwarding with the same envelope===
This is the operation that a ''backup MX'' accomplishes to deliver messages to primary MXes of the given domain, where further processing may occur. It may happen that a relay, e.g. the author's outgoing mail server, cannot reach a primary MX for a given recipient. That may occur if the target server is temporarily unreachable. Thus, secondary MXes can cope with network outages.
== Other acceptations of ''forwarding'' ==
That term is commonly used for the manual operation initiated by users by clicking on the ''Forward'' button of their MUAs. From the SMTP point of view, that action is not a forwarding, in the sense that the new message will have a new envelope, a new Message-ID, and a possibly altered content.
In addition, '''alias expansion''' is often referred by this term. The main difference between forwarding and alias expansion, according to SMTP, is that the latter does not alter the envelope sender. If the operation is carried out on the same server, it may not undergo a new SMTP transaction, and just write the message to a different location on disc. However, it is still quite common for servers to forward messages badly omitting to properly set a new envelope sender: while technically resembling an alias expansion, ''ill forwarding'' breaks protocols that depend on the envelope sender, e.g. [http://www.openspf.org/ SPF].
== See also ==
* [[wp:Email forwarding]]
* RFC 5321 Simple Mail Transfer Protocol, section 3.9
5dbc3c6aee34bbd659f05e919f74d0b235b3387e
1421
1418
2008-11-22T11:33:25Z
Ale
1
/* Forwarding agreement solution */ new section
wikitext
text/x-wiki
Mail '''forwarding''' is the act of transferring a message from the server where the message recently arrived to another server that is deemed nearer to the intended recipient(s).
== Meaning of the term in this site ==
We focus on two types of message transferring that servers do automatically upon receiving a message: possibly altering the envelope or leaving it intact.
=== Forwarding with a new envelope ===
The receiving server finds a [[forwarding recipe]] corresponding to one of the message's recipient addresses, and it honors it by
* replacing the recipient address with the ones listed in the recipe, and
* replacing the ''sender address'', according to the recipe's policy.
The server address defines the behavior of the email system in the case of delivery failures: Even if the next server will accept the forwarded message, a delivery failure may occur further downstream. In that case, a failure notice should be delivered to the mailbox defined by setting the sender address at this stage. Therefore, there are a few considerations that may affect the policy:
# Should the forwarding recipe be modified as a consequence of delivery failures?
# Should the replaced recipient addresses be made known to the upstream sender?
This action is described in section 3.9.2 of <nowiki>RFC 5321</nowiki>, ''List''. Note that the preceding section 3.9.1 of that RFC, ''Alias'', describes a forwarding method useful for ''intra-domain'' forwarding. See below.
=== Forwarding with the same envelope===
This is the operation that a ''backup MX'' accomplishes to deliver messages to primary MXes of the given domain, where further processing may occur. It may happen that a relay, e.g. the author's outgoing mail server, cannot reach a primary MX for a given recipient. That may occur if the target server is temporarily unreachable. Thus, secondary MXes can cope with network outages.
== Forwarding agreement solution ==
<!-- TODO: add template {{main|Forwarding agreement}} -->
''Main article: [[Forwarding agreement]]''
An MX server who accepts such specific form of agreement should advertise it during the SMTP handshake. A forwarder may then choose to come into an agreement, or just submit mail without worrying about reputation and deliverability. Concluding the agreement requires a policy match involving the forwarder and the recipient. End users set their policies specifying relevant options at the target MX, or just accepting the default.
After the agreement has been set up, the forwarder is supplied with a valid user id and password which are only valid for forwarding that kind of mail to the given recipient.
== Other acceptations of ''forwarding'' ==
That term is commonly used for the manual operation initiated by users by clicking on the ''Forward'' button of their MUAs. From the SMTP point of view, that action is not a forwarding, in the sense that the new message will have a new envelope, a new Message-ID, and a possibly altered content.
In addition, '''alias expansion''' is often referred by this term. The main difference between forwarding and alias expansion, according to SMTP, is that the latter does not alter the envelope sender. If the operation is carried out on the same server, it may not undergo a new SMTP transaction, and just write the message to a different location on disc. However, it is still quite common for servers to forward messages badly omitting to properly set a new envelope sender: while technically resembling an alias expansion, ''ill forwarding'' breaks protocols that depend on the envelope sender, e.g. [http://www.openspf.org/ SPF].
== See also ==
* [[wp:Email forwarding]]
* RFC 5321 Simple Mail Transfer Protocol, section 3.9
3fd6d6564fed6b2a0b47481f5f42c13f66b0a6e6
1422
1421
2008-11-22T11:42:26Z
Ale
1
/* Forwarding agreement solution */ spell forwarding lowcase
wikitext
text/x-wiki
Mail '''forwarding''' is the act of transferring a message from the server where the message recently arrived to another server that is deemed nearer to the intended recipient(s).
== Meaning of the term in this site ==
We focus on two types of message transferring that servers do automatically upon receiving a message: possibly altering the envelope or leaving it intact.
=== Forwarding with a new envelope ===
The receiving server finds a [[forwarding recipe]] corresponding to one of the message's recipient addresses, and it honors it by
* replacing the recipient address with the ones listed in the recipe, and
* replacing the ''sender address'', according to the recipe's policy.
The server address defines the behavior of the email system in the case of delivery failures: Even if the next server will accept the forwarded message, a delivery failure may occur further downstream. In that case, a failure notice should be delivered to the mailbox defined by setting the sender address at this stage. Therefore, there are a few considerations that may affect the policy:
# Should the forwarding recipe be modified as a consequence of delivery failures?
# Should the replaced recipient addresses be made known to the upstream sender?
This action is described in section 3.9.2 of <nowiki>RFC 5321</nowiki>, ''List''. Note that the preceding section 3.9.1 of that RFC, ''Alias'', describes a forwarding method useful for ''intra-domain'' forwarding. See below.
=== Forwarding with the same envelope===
This is the operation that a ''backup MX'' accomplishes to deliver messages to primary MXes of the given domain, where further processing may occur. It may happen that a relay, e.g. the author's outgoing mail server, cannot reach a primary MX for a given recipient. That may occur if the target server is temporarily unreachable. Thus, secondary MXes can cope with network outages.
== Forwarding agreement solution ==
<!-- TODO: add template {{main|Forwarding agreement}} -->
''Main article: [[forwarding agreement]]''
An MX server who accepts such specific form of agreement should advertise it during the SMTP handshake. A forwarder may then choose to come into an agreement, or just submit mail without worrying about reputation and deliverability. Concluding the agreement requires a policy match involving the forwarder and the recipient. End users set their policies specifying relevant options at the target MX, or just accepting the default.
After the agreement has been set up, the forwarder is supplied with a valid user id and password which are only valid for forwarding that kind of mail to the given recipient.
== Other acceptations of ''forwarding'' ==
That term is commonly used for the manual operation initiated by users by clicking on the ''Forward'' button of their MUAs. From the SMTP point of view, that action is not a forwarding, in the sense that the new message will have a new envelope, a new Message-ID, and a possibly altered content.
In addition, '''alias expansion''' is often referred by this term. The main difference between forwarding and alias expansion, according to SMTP, is that the latter does not alter the envelope sender. If the operation is carried out on the same server, it may not undergo a new SMTP transaction, and just write the message to a different location on disc. However, it is still quite common for servers to forward messages badly omitting to properly set a new envelope sender: while technically resembling an alias expansion, ''ill forwarding'' breaks protocols that depend on the envelope sender, e.g. [http://www.openspf.org/ SPF].
== See also ==
* [[wp:Email forwarding]]
* RFC 5321 Simple Mail Transfer Protocol, section 3.9
148686d75c6666790796758d7625ef82bd0b35df
forwarding recipe
0
10
1419
2008-11-03T15:47:20Z
Ale
1
Definition of forwarding recipe
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<pre>
| sendmail -f postmaster@example.org newrecipient@example.com
</pre>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
Courier-MTA comes with a delivery agent, [http://www.courier-mta.org/maildrop.html maildrop], that implements a local filtering engine with its own programming language. It allows to implement forwarding recipes that are configurable at different levels; that is, more easily maintainable.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
A forwarding recipe's policy is limited to local behavior. It is not a ''forwarding agreement''.
78854f1ac831a9e90c84526617a8033cb20d5c73
1425
1419
2008-11-29T11:54:03Z
Ale
1
/* Quest for agreement */ new section
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<pre>
| sendmail -f postmaster@example.org newrecipient@example.com
</pre>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
Courier-MTA comes with a delivery agent, [http://www.courier-mta.org/maildrop.html maildrop], that implements a local filtering engine with its own programming language. It allows to implement forwarding recipes that are configurable at different levels; that is, more easily maintainable.
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
A forwarding recipe's policy is limited to local behavior.
d9b439063ccdbf58dd9b1ab6f96eb47c9b0ef438
1426
1425
2008-11-29T12:04:32Z
Ale
1
/* Policy considerations */ mention that states include nondisclosure flag
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<pre>
| sendmail -f postmaster@example.org newrecipient@example.com
</pre>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
Courier-MTA comes with a delivery agent, [http://www.courier-mta.org/maildrop.html maildrop], that implements a local filtering engine with its own programming language. It allows to implement forwarding recipes that are configurable at different levels; that is, more easily maintainable.
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''' store and forward may work, and
* '''non-disclosure''' the target address should never leak.
A forwarding recipe's policy is limited to local behavior.
7e61045adc08c415d0c11db74e64ee557b454fbc
1427
1426
2008-11-29T15:37:05Z
Ale
1
/* Policy considerations */ see RFC 3461
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<pre>
| sendmail -f postmaster@example.org newrecipient@example.com
</pre>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
Courier-MTA comes with a delivery agent, [http://www.courier-mta.org/maildrop.html maildrop], that implements a local filtering engine with its own programming language. It allows to implement forwarding recipes that are configurable at different levels; that is, more easily maintainable.
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
f4ed2dca323b7359875cacdce6e777887c8a0b20
1453
1427
2008-12-06T15:10:14Z
Ale
1
/* Envelope sender tweak */ new subsection
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<pre>
| sendmail -f postmaster@example.org newrecipient@example.com
</pre>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
Courier-MTA comes with a delivery agent, [http://www.courier-mta.org/maildrop.html maildrop], that implements a local filtering engine with its own programming language. It allows to implement forwarding recipes that are configurable at different levels; that is, more easily maintainable.
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
=== Envelope sender tweak ===
An easy technique to let the sending software know that a message is being forwarded is by changing the envelope sender to some special value that is only understood within the host/ADMD. For example<code>
| sendmail -f ff=<i>keyword</i>=<i>param</i>=postmaster@example.org newrecipient@example.com</code>
The line above provides a keyword and a parameter for using an existing forwarding agreement, or start negotiating one. The sending software, upon seeing that the remote MX accepts the ''ff'' model, shall search a local database for a record corresponding to <code>newrecipient@example.com</code>, the remote MX, and the keyword parameter. That record is considered a ''complement'' of the forwarding recipe.
If the record is found and contains an id/password for logging in, the sending software recovers the original envelope sender from the ''Return-Path'' header and forwards the message according to this model. For ongoing negotiations, the record may contain an indication to either queue the message or send it normally until the negotiation completes. Otherwise, the keyword and parameter can be used to load a configurated environment and launch the first step of the negotiation. In this case the return code indicates whether to queue the message or sending it normally.
Sending the message normally, which is also done in case the remote MX does not support ''FF'', implies using the default envelope sender, in this case <code>postmaster@example.org</code>. The tweaked envelope sender never leaves the relevant host. However, it may be set on an internal host inside the same ADMD in case the existing forwarding recipe is not on a boundary host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
90669d907de589a61450c7312c6e827a65a5b687
forwarding agreement
0
11
1423
2008-11-22T13:08:15Z
Ale
1
start new page
wikitext
text/x-wiki
A ''forwarding agreement'' is the procedural data that matches a [[forwarding recipe]]. It contains a user-id and password pair, the forwarder's ID, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Establishing a forwarding agreement ==
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. When automated, the process should conclude rather quickly; an SMTP implementation that realizes an agreement is missing may even run the above procedure on the fly.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the EHLO advertised URL,
* the password changing URL, and
* the policy negotiation URL at the forwarder's.
== Maintaining the agreement ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated user is granted permission for the given recipient, thus indexing by forwarder-ID and recipient is necessary. Note that the recipient address given here may well be an alias.
Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, indexing by user-ID is also necessary. The policy negotiation URL must be capable of supplying similar queries, so that it is possible to recursively browse all the mail address that eventually result in mail arriving to the given mailbox.
Obviously, the primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
99deaf3eaa636454ebf887884bb16b3557254dd8
1428
1423
2008-11-29T16:52:38Z
Ale
1
/* Policy considerations */ add new section
wikitext
text/x-wiki
A ''forwarding agreement'' is the procedural data that matches a [[forwarding recipe]]. It contains a user-id and password pair, the forwarder's ID, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Establishing a forwarding agreement ==
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. When automated, the process should conclude rather quickly; an SMTP implementation that realizes an agreement is missing may even run the above procedure on the fly.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the EHLO advertised URL,
* the password changing URL, and
* the policy negotiation URL at the forwarder's.
== Maintaining the agreement ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated user is granted permission for the given recipient, thus indexing by forwarder-ID and recipient is necessary. Note that the recipient address given here may well be an alias.
Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, indexing by user-ID is also necessary. The policy negotiation URL must be capable of supplying similar queries, so that it is possible to recursively browse all the mail address that eventually result in mail arriving to the given mailbox.
Obviously, the primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
The policy shall prescribe what [[boundary filter]]s the forwarder enforces for a specific recipient. DNSBL or SPF checks should not be done for forwarded messages.
In addition, the [[forwarding recipe]] policy must be matched.
49de7c82c2c865456b407baf2391d102e472469e
1444
1428
2008-12-05T11:12:16Z
Ale
1
/* Definition */ bold
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains a user-id and password pair, the forwarder's ID, the category, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Establishing a forwarding agreement ==
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. When automated, the process should conclude rather quickly; an SMTP implementation that realizes an agreement is missing may even run the above procedure on the fly.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the EHLO advertised URL,
* the password changing URL, and
* the policy negotiation URL at the forwarder's.
== Maintaining the agreement ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated user is granted permission for the given recipient, thus indexing by forwarder-ID and recipient is necessary. Note that the recipient address given here may well be an alias.
Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, indexing by user-ID is also necessary. The policy negotiation URL must be capable of supplying similar queries, so that it is possible to recursively browse all the mail address that eventually result in mail arriving to the given mailbox.
Obviously, the primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
The policy shall prescribe what [[boundary filter]]s the forwarder enforces for a specific recipient. DNSBL or SPF checks should not be done for forwarded messages.
In addition, the [[forwarding recipe]] policy must be matched.
9cdba505e5b912c4cbfbef9ca887b6e4715aff16
1445
1444
2008-12-05T11:44:47Z
Ale
1
/* Data fields */ insert new section
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains a user-id and password pair, the forwarder's ID, the category, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
The ''user-id'' may be the remote alias name, the list-id, or the newsletter name.
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for automatically granting agreements. In addition, when sending multiple messages in the same session a forwarder may change the user-id by using the AUTH Parameter to the MAIL FROM command, if both share the same forwarder-ID.
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. Possible values include
* fixed, that is manually edited configuration data to single or multiple recipients,
* mailing list, and
* newsletter.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. When automated, the process should conclude rather quickly; an SMTP implementation that realizes an agreement is missing may even run the above procedure on the fly.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the EHLO advertised URL,
* the password changing URL, and
* the policy negotiation URL at the forwarder's.
== Maintaining the agreement ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated user is granted permission for the given recipient, thus indexing by forwarder-ID and recipient is necessary. Note that the recipient address given here may well be an alias.
Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, indexing by user-ID is also necessary. The policy negotiation URL must be capable of supplying similar queries, so that it is possible to recursively browse all the mail address that eventually result in mail arriving to the given mailbox.
Obviously, the primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
The policy shall prescribe what [[boundary filter]]s the forwarder enforces for a specific recipient. DNSBL or SPF checks should not be done for forwarded messages.
In addition, the [[forwarding recipe]] policy must be matched.
83837803cb3b0de6c00179438064df8131214f85
1446
1445
2008-12-05T14:45:31Z
Ale
1
ID vs. user-id
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list, and
* newsletter.
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the EHLO advertised URL,
* the password changing URL, and
* the policy negotiation URL at the sender's.
== Maintaining the agreement ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient, thus indexing by agreement-ID and user-ID is necessary.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
b3a1980e5587aa7ff75610431c9a541c80a846a4
1450
1446
2008-12-05T15:15:21Z
Ale
1
/* Data fields */ add a category for backup MX
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the EHLO advertised URL,
* the password changing URL, and
* the policy negotiation URL at the sender's.
== Maintaining the agreement ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient, thus indexing by agreement-ID and user-ID is necessary.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
2ea87493b318f44f75fa40bd65749e07e947224b
1451
1450
2008-12-05T15:40:32Z
Ale
1
/* Using and maintaining agreements */ renamed section
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the EHLO advertised URL,
* the password changing URL, and
* the policy negotiation URL at the sender's.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
8007d0616ce660098d6159aed7162e32f76617a1
1454
1451
2008-12-06T15:10:50Z
Ale
1
/* Establishing a forwarding agreement */
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the EHLO advertised URL,
* the password changing URL, and
* the policy negotiation URL at the sender's.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
1ad6b7bd3812f0974d495598bb0caa85b7b72bf9
Forwarding agreement
0
12
1424
2008-11-29T11:51:15Z
Ale
1
Redirecting to [[forwarding agreement]]
wikitext
text/x-wiki
#redirect [[forwarding agreement]]
99c7d6600ab8a4cabc11baeb6a6ee3ed367d08dc
boundary filter
0
13
1429
2008-11-29T16:56:54Z
Ale
1
new (short) page
wikitext
text/x-wiki
A '''boundary filter''' is a mail filter that is preferably operated at the [[boundary]] between the sender and the recipient realms.
== Known boundary filters ==
* DNSBL
* SPF
4ab17e00fe8c2c66daaebb4e96e53dc0ffb24a06
1434
1429
2008-12-01T16:54:40Z
Ale
1
expanded
wikitext
text/x-wiki
A '''boundary filter''' is a mail filter that is preferably operated at the [[boundary]] between the originating and the receiving networks.
== DNSBL ==
DNS Block Lists are IP addresses of known spammers or compromised machines. Looking up the remote IP of an incoming SMTP connection is commonly used for avoiding a good percentage of spam. Obviously, this operation has to be done at the boundary. Otherwise, only the last forwarder's IP address can be checked.
Some users don't want their mail to be filtered against some or all DNSBL, though. They possibly counter spam by avoiding to publish their email address. A server may accomplish such kind of request by setting an environment flag in case the remote IP is blacklisted, then check user's preferences on each RCPT command. When this can be done, the negotiation of a [[forwarding agreement]] should include a list of available DNSBL, letting the target host choose on behalf of the user which of them should be enabled or disabled. This option makes more sense for single-recipient forwarding recipes than for, say, mailing lists.
== SPF ==
Sender Policy Framework checks must be done at the boundary. Blocking forged addresses appeared a good idea in 2003. However, some argue that SPF breaks forwarding; other counter-argue that forwarding is broken since RFC 1123.
Requiring that the forwarder carries out SPF checks, adds ''Received-SPF'' headers, and rejects messages that ''fail'' the SPF authorization, is expected to be a typical requirement of the [[forwarding agreement]] negotiation.
Negotiating a forwarding agreement may set the ''non-disclosure'' flag in the corresponding forwarding recipe under certain circumstances. In that case, the forwarder must set the envelope sender to ''null'' or to a bounce address provided by the target host. For all other cases, there is no need to use SRS or any other sender replacement, since the forwarder is exempted from SPF checks under the agreement.
== Other filters ==
Anti-virus, DKIM, S/MIME, and other forms of authentication or authorization can be performed anywhere along the path. Running them sooner rather than later is trading bandwidth for CPU cycles. ''FixForwarding'' doesn't prescribe any particular behavior for these filters, encouraging hosts to run them as they routinely do. However, the negotiation stage may provide for exchanging a path for reporting message-specific or statistical information related to these filters, e.g. a feedback loop.
d6f01e00cbae0809b24206dd2b10d83077db8fd5
boundary
0
14
1430
2008-11-29T17:00:28Z
Ale
1
New page: There is a well determined '''boundary''' between the sender and the recipient of a given mail message. == Definition == The boundary is defined by the MX records of the recipient's domai...
wikitext
text/x-wiki
There is a well determined '''boundary''' between the sender and the recipient of a given mail message.
== Definition ==
The boundary is defined by the MX records of the recipient's domain in the ''global'' DNS. Along the path of a given message, there is exactly one point where an MTA looks up the global DNS, determines a target host in the recipient domain's MX, and delivers to one of them. The boundary between the two realms lays in the middle of that hop. (Further hops from a backup MX to a higher priority one are conventionally in the recipient's realm.)
09e77576aa20c694237f4b4cd389b219d0349427
1431
1430
2008-11-30T15:16:59Z
Ale
1
Restructured, rephrased, reworded
wikitext
text/x-wiki
In a given message path, there is a well determined '''boundary''' between the mail originating network (MON) and the mail receiving network (MRN). It lies where the first MX is looked up in the global DNS in order to determine the receiver for the next hop.
== Topology ==
The boundary is defined by the MX records of the recipient's domain in the ''global'' DNS. Internal DNS views may provide for outgoing mail paths, as an alternative to MTA-specific configuration. Because DNS is global, the domain servers are uniquely identified.
The same message may follow different paths at different times, depending on connection availability, DNS changes, and DNS randomization. In addition, when the recipient changes, the path changes widely. It can well happen that the same host is on one side of the boundary for message A, and it happens to be on the other side for message B, even if both messages end up to the same target host. On the other hand, the whole path may consist of a single server, resulting in a degenerated boundary inside it.
This topology is not necessarily related to ADministrative Management Domains (ADMDs).
== Forwarders ==
Relays performing alias expansion are considered part of the MRN, if they use the target address legitimately.
== Backup MXes ==
A message may pass through a backup MX if a direct connection to the target server is not available. The backup MX is considered part of the MRN, even if it currently does not have a list of valid users.
The way backup MXes currently operate generates backscatter. This, and the fact that connections are often very reliable, results in diminished use of backup MXes. Only large networks operate them, and they are usually in the same ADMD.
It is possible that the [[solution proposed]] here results in enhanced backup MXes operations. A backup MX has an implicit list of valid mailboxes that comprises any possible address within the given domain(s). However, it still needs to gather forwarding agreements explicitly. That would result in having an almost complete list of users. It may reply with a 4xx code for new users that are not in the agreements database. Additional mechanisms are needed (e.g. temporary blacklists of addresses, maximum allowed queries per time period) to make that behavior smooth.
== See Also ==
*[http://www.openspf.org/Community/Glossary SPF Community Glossary] has some more terminology and mentions where it originated.
9f62b3cfd729c9790c5a7c7c8ff0b0c443da71ec
1449
1431
2008-12-05T15:11:25Z
Ale
1
/* Topology */ expand on ADMD
wikitext
text/x-wiki
In a given message path, there is a well determined '''boundary''' between the mail originating network (MON) and the mail receiving network (MRN). It lies where the first MX is looked up in the global DNS in order to determine the receiver for the next hop.
== Topology ==
The boundary is defined by the MX records of the recipient's domain in the ''global'' DNS. Internal DNS views may provide for outgoing mail paths, as an alternative to MTA-specific configuration. Because DNS is global, the domain servers are uniquely identified.
The same message may follow different paths at different times, depending on connection availability, DNS changes, and DNS randomization. In addition, when the recipient changes, the path changes widely. It can well happen that the same host is on one side of the boundary for message A, and it happens to be on the other side for message B, even if both messages end up to the same target host. On the other hand, the whole path may consist of a single server, resulting in a degenerated boundary inside it.
This topology is not necessarily related to ADministrative Management Domains (ADMDs). On the one hand, hosts belonging to an ADMD may end up not being involved in any inter-domain forwarding. On the other hand, hosts that don't belong to an ADMD may negotiate an agreement and enjoy the amount of trust that is required to perform inter-domain forwarding.
== Forwarders ==
Relays performing alias expansion are considered part of the MRN, if they use the target address legitimately.
== Backup MXes ==
A message may pass through a backup MX if a direct connection to the target server is not available. The backup MX is considered part of the MRN, even if it currently does not have a list of valid users.
The way backup MXes currently operate generates backscatter. This, and the fact that connections are often very reliable, results in diminished use of backup MXes. Only large networks operate them, and they are usually in the same ADMD.
It is possible that the [[solution proposed]] here results in enhanced backup MXes operations. A backup MX has an implicit list of valid mailboxes that comprises any possible address within the given domain(s). However, it still needs to gather forwarding agreements explicitly. That would result in having an almost complete list of users. It may reply with a 4xx code for new users that are not in the agreements database. Additional mechanisms are needed (e.g. temporary blacklists of addresses, maximum allowed queries per time period) to make that behavior smooth.
== See Also ==
*[http://www.openspf.org/Community/Glossary SPF Community Glossary] has some more terminology and mentions where it originated.
176bf3507558012110be78ff04eab58f6c593235
forwarding
0
15
1432
2008-11-30T16:07:12Z
Ale
1
Redirecting to [[Forwarding]]
wikitext
text/x-wiki
#redirect [[Forwarding]]
b58000fadf725c1a53342b7704796020ec59fc33
solution proposed
0
16
1433
2008-11-30T16:14:20Z
Ale
1
new page
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a host obtains an id/password pair that it can use to relay messages for a given user via SMTP AUTH on the relevant server. The receiver maintains a list of agreements matching the corresponding records in the alias expansion lists at the senders'.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops. Thus, agreements provide for a unified interface for unsubscribe, report spam, generic feedback, and preference setting for the end user, that is the owner of the relevant mailboxes.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described slowly. Thus this site born, in fall 2008.
ac32b095059df56085b7c8e122e0be656ab24430
1435
1433
2008-12-01T17:55:57Z
Ale
1
/* Anti-Spam */ new section
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a host obtains an id/password pair that it can use to relay messages for a given user via SMTP AUTH on the relevant server. The receiver maintains a list of agreements matching the corresponding records in the alias expansion lists at the senders'.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops. Thus, agreements provide for a unified interface for unsubscribe, report spam, generic feedback, and preference setting for the end user, that is the owner of the relevant mailboxes.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Anti-Spam ==
The major contribution of this solution against spam consists in enabling [[boundary filter]]s. Some of those filter, in turn, don-t aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' email address would confront them with their actions.
The usual definition of spam, "unsolicited bulk email", does not distinguish those who use of false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
724520f365c3395138d8091d70a14ccfc9fe28a1
1436
1435
2008-12-01T18:21:30Z
Ale
1
/* Anti-Spam */ typo
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a host obtains an id/password pair that it can use to relay messages for a given user via SMTP AUTH on the relevant server. The receiver maintains a list of agreements matching the corresponding records in the alias expansion lists at the senders'.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops. Thus, agreements provide for a unified interface for unsubscribe, report spam, generic feedback, and preference setting for the end user, that is the owner of the relevant mailboxes.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Anti-Spam ==
The major contribution of this solution against spam consists in enabling [[boundary filter]]s. Some of those filter, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' email address would confront them with their actions.
The usual definition of spam, "unsolicited bulk email", does not distinguish those who use of false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
32a13a82c326237a5bb092d6e8af7e46ad52e5c9
1437
1436
2008-12-01T18:22:20Z
Ale
1
/* Anti-Spam */ wording
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a host obtains an id/password pair that it can use to relay messages for a given user via SMTP AUTH on the relevant server. The receiver maintains a list of agreements matching the corresponding records in the alias expansion lists at the senders'.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops. Thus, agreements provide for a unified interface for unsubscribe, report spam, generic feedback, and preference setting for the end user, that is the owner of the relevant mailboxes.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Anti-Spam ==
The major contribution of this solution against spam consists in enabling [[boundary filter]]s. Some of those filter, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their actions.
The usual definition of spam, "unsolicited bulk email", does not distinguish those who use of false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
f1448d12ef9d24d5b5c5c51040830b36220d0934
1438
1437
2008-12-01T18:23:02Z
Ale
1
/* Anti-Spam */ wording
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a host obtains an id/password pair that it can use to relay messages for a given user via SMTP AUTH on the relevant server. The receiver maintains a list of agreements matching the corresponding records in the alias expansion lists at the senders'.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops. Thus, agreements provide for a unified interface for unsubscribe, report spam, generic feedback, and preference setting for the end user, that is the owner of the relevant mailboxes.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Anti-Spam ==
The major contribution of this solution against spam consists in enabling [[boundary filter]]s. Some of those filter, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
The usual definition of spam, "unsolicited bulk email", does not distinguish those who use of false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
8bc700c75155b11783d4fb6c7083ccfd84715761
1439
1438
2008-12-01T18:23:51Z
Ale
1
/* Anti-Spam */ wording
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a host obtains an id/password pair that it can use to relay messages for a given user via SMTP AUTH on the relevant server. The receiver maintains a list of agreements matching the corresponding records in the alias expansion lists at the senders'.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops. Thus, agreements provide for a unified interface for unsubscribe, report spam, generic feedback, and preference setting for the end user, that is the owner of the relevant mailboxes.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Anti-Spam ==
The major contribution of this solution against spam consists in enabling [[boundary filter]]s. Some of those filter, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
The usual definition of spam, "unsolicited bulk email", does not distinguish between spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
ba3dca004bd8a58adfd85b232d4c563d680a7ad9
1440
1439
2008-12-01T18:25:19Z
Ale
1
/* Anti-Spam */ typo
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a host obtains an id/password pair that it can use to relay messages for a given user via SMTP AUTH on the relevant server. The receiver maintains a list of agreements matching the corresponding records in the alias expansion lists at the senders'.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops. Thus, agreements provide for a unified interface for unsubscribe, report spam, generic feedback, and preference setting for the end user, that is the owner of the relevant mailboxes.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Anti-Spam ==
The major contribution of this solution against spam consists in enabling [[boundary filter]]s. Some of those filter, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
f1443cd849bd50a69323d2abb0fa38e96773d2ae
1441
1440
2008-12-05T10:30:42Z
Ale
1
/* Anti-Spam effect */ "effect", +/- sections
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a host obtains an id/password pair that it can use to relay messages for a given user via SMTP AUTH on the relevant server. The receiver maintains a list of agreements matching the corresponding records in the alias expansion lists at the senders'.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops. Thus, agreements provide for a unified interface for unsubscribe, report spam, generic feedback, and preference setting for the end user, that is the owner of the relevant mailboxes.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that a ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
0918dc6d4fe8d3776bb2de0dc60eaed857fdfa08
1442
1441
2008-12-05T10:58:19Z
Ale
1
/* Summary */
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an id/password pair that it can use to relay messages destined to a given user via SMTP AUTH on the relevant server. The receiver maintains a list of agreements matching the corresponding elements of the alias expansion lists at the senders'.
Agreements are classified into different categories, e.g., single forwarding, newsletters, mailing lists. An agreement is required for each target user and for each subscription mechanism. For example, if sender A runs a mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that a ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
8735418041ebf8775ca8dc414a4cd8ac03a058ea
1447
1442
2008-12-05T14:52:21Z
Ale
1
/* Summary */ wording
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements matching the corresponding elements of the alias expansion lists at the senders'.
Agreements are classified into different categories, e.g., single forwarding, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that a ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
c673cbf0213d635fdbd2f1abf3f07a1647de624d
1448
1447
2008-12-05T14:55:34Z
Ale
1
/* False security */ typo
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements matching the corresponding elements of the alias expansion lists at the senders'.
Agreements are classified into different categories, e.g., single forwarding, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In facts, a local database lookup on both sides should suffice in most cases.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
dc9d1ee783787df249c11fd72cef1a9482b80308
1452
1448
2008-12-06T14:16:07Z
Ale
1
/* Summary */ mention what triggers FF
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements matching the corresponding elements of the alias expansion lists at the senders'.
Agreements are classified into different categories, e.g., single forwarding, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
This model of forwarding is triggered by a small tweak and a light SMTP extension. The tweak on the sender side consists of a peculiar encoding of the envelope sender that lets the sending software know that a message is being forwarded and provides a parameter for negotiating or an agreement or using an existing one. It requires to set the ''-f'' command switch properly on the forwarding recipe. The tweaked envelope sender only lives locally, on the relevant host or ADMD. The extension on the receiver side is an EHLO keyword to let the sending software know that a specific receiver being contacted is also willing to use forwarding agreements.
As complicate as setting up a forwarding agreement may be, using it is as cheap as possible. In case the agreement has already been negotiated, the sender finds the id/password in a local database, and the remote receiver authenticates it normally.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
0a71d16a41e39ce306e1d6bd851464b6206b3850
forwarding recipe
0
10
1455
1453
2008-12-06T15:38:30Z
Ale
1
/* Common forwarding recipes */ subsections
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
=== Static recipes ===
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of <code>
| sendmail -f postmaster@example.org newrecipient@example.com</code>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
=== Newsletters and mailing lists ===
Dynamic recipes are managed by specialized software. Such software has well defined schemata to precisely define what messages are forwarded to what addresses. A number of ''best practices'' documents exists that specify how to reliably send bulk mail, e.g. [http://mipassoc.org/spamops/index.html MIPAssoc]. In case the model proposed here will be adopted, it may be added to the list of things to do, but it will have to be done on a per-package basis.
=== Backup MXes ===
A backup MX also does forwarding. What is special in it, is that forwarding recipes are ''implicit''. See also [[boundary#Backup MXes]].
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
=== Envelope sender tweak ===
An easy technique to let the sending software know that a message is being forwarded is by changing the envelope sender to some special value that is only understood within the host/ADMD. For example<code>
| sendmail -f ff=<i>keyword</i>=<i>param</i>=postmaster@example.org newrecipient@example.com</code>
The line above provides a keyword and a parameter for using an existing forwarding agreement, or start negotiating one. The sending software, upon seeing that the remote MX accepts the ''ff'' model, shall search a local database for a record corresponding to <code>newrecipient@example.com</code>, the remote MX, and the keyword parameter. That record is considered a ''complement'' of the forwarding recipe.
If the record is found and contains an id/password for logging in, the sending software recovers the original envelope sender from the ''Return-Path'' header and forwards the message according to this model. For ongoing negotiations, the record may contain an indication to either queue the message or send it normally until the negotiation completes. Otherwise, the keyword and parameter can be used to load a configurated environment and launch the first step of the negotiation. In this case the return code indicates whether to queue the message or sending it normally.
Sending the message normally, which is also done in case the remote MX does not support ''FF'', implies using the default envelope sender, in this case <code>postmaster@example.org</code>. The tweaked envelope sender never leaves the relevant host. However, it may be set on an internal host inside the same ADMD in case the existing forwarding recipe is not on a boundary host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
b06d0159460152a653a9c430fc11cc692e453d7b
solution proposed
0
16
1456
1452
2008-12-06T15:57:04Z
Ale
1
/* Summary */ wording/typo
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements, matching the corresponding elements at the senders' alias expansion lists.
Agreements are classified into different categories, e.g., static ''.forward'' files, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
This model of forwarding can be triggered by a local tweak and a light SMTP extension. The tweak on the sender side consists of a peculiar encoding of the envelope sender that lets the sending software know that a message is being forwarded, and provides a parameter for either negotiating an agreement or using an existing one. That requires to set the ''-f'' command switch accordingly. The tweaked envelope sender only lives locally, i.e. on the relevant host or ADMD. The extension on the receiver side is an EHLO keyword to let the sending software know that the specific MX being contacted is also willing to use forwarding agreements.
The negotiation required to establish a forwarding agreement can be quite complicate, specially if it is the first agreement between two organizations. By contrast, using an existing agreement is very cheap: the sender finds the id/password pair in a local database, and the remote MX authenticates it normally.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
3488d5396d3727ceacea4d3b571385c38cd5f2b6
1457
1456
2008-12-06T15:59:02Z
Ale
1
/* Easy attack path */ wording
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements, matching the corresponding elements at the senders' alias expansion lists.
Agreements are classified into different categories, e.g., static ''.forward'' files, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection for certain cases. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
This model of forwarding can be triggered by a local tweak and a light SMTP extension. The tweak on the sender side consists of a peculiar encoding of the envelope sender that lets the sending software know that a message is being forwarded, and provides a parameter for either negotiating an agreement or using an existing one. That requires to set the ''-f'' command switch accordingly. The tweaked envelope sender only lives locally, i.e. on the relevant host or ADMD. The extension on the receiver side is an EHLO keyword to let the sending software know that the specific MX being contacted is also willing to use forwarding agreements.
The negotiation required to establish a forwarding agreement can be quite complicate, specially if it is the first agreement between two organizations. By contrast, using an existing agreement is very cheap: the sender finds the id/password pair in a local database, and the remote MX authenticates it normally.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the negotiation handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
394c0953c11940838cb66c184d61be46c14aefc8
1458
1457
2008-12-07T10:11:57Z
Ale
1
/* Summary */ wording
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements, matching the corresponding elements at the senders' alias expansion lists.
Agreements are classified into different categories, e.g., static ''.forward'' files, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection as desired. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
This model of forwarding can be triggered by means of a local tweak and a light SMTP extension. The tweak on the sender side consists of a local encoding of the envelope sender that lets the sending software know that a message is being forwarded, and provides a parameter for either negotiating an agreement or using an existing one. That requires to set the ''-f'' command switch accordingly. The tweaked envelope sender only lives locally, i.e. on the relevant host or ADMD. The extension on the receiver side is an EHLO keyword to let the sending software know that the specific MX being contacted is also willing to use forwarding agreements.
The negotiation required to establish a forwarding agreement can be quite complicate, especially for the first agreement between two organizations. By contrast, using an existing agreement is very cheap: the sender finds the id/password pair in a local database, and the remote MX authenticates it normally.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the negotiation handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The idea arose in a discussion originated on the spf-discuss list in January 2008. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG and Courier-users mailing lists, where it didn't receive much attention: The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
7f9df5de8637b57b14a6ba753ee5ae7a9a67d167
1459
1458
2008-12-08T13:29:16Z
Ale
1
/* History */ add links
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements, matching the corresponding elements at the senders' alias expansion lists.
Agreements are classified into different categories, e.g., static ''.forward'' files, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection as desired. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
This model of forwarding can be triggered by means of a local tweak and a light SMTP extension. The tweak on the sender side consists of a local encoding of the envelope sender that lets the sending software know that a message is being forwarded, and provides a parameter for either negotiating an agreement or using an existing one. That requires to set the ''-f'' command switch accordingly. The tweaked envelope sender only lives locally, i.e. on the relevant host or ADMD. The extension on the receiver side is an EHLO keyword to let the sending software know that the specific MX being contacted is also willing to use forwarding agreements.
The negotiation required to establish a forwarding agreement can be quite complicate, especially for the first agreement between two organizations. By contrast, using an existing agreement is very cheap: the sender finds the id/password pair in a local database, and the remote MX authenticates it normally.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the negotiation handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The ''ff'' idea arose in a discussion originated on the spf-discuss list in January 2008[http://www.listbox.com/member/archive/735/2008/01/sort/thread_rev/page/1/entry/11:265/20080131110008:4871D6CE-D015-11DC-8216-54C5B46F41FF/]. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG[http://www.nabble.com/Yet-another-attempt-to-fix-forwarding-td15177052.html] and Courier-users[http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg30908.html] mailing lists, where it just originated more or less (respectively) responses on SPF/SRS topics only. The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born, in fall 2008.
7a6ded0ff67b32054f956766bac75613c11205d2
1462
1459
2008-12-08T15:10:39Z
Ale
1
/* History */ registered by end of Jan: omit "fall"
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements, matching the corresponding elements at the senders' alias expansion lists.
Agreements are classified into different categories, e.g., static ''.forward'' files, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection as desired. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
This model of forwarding can be triggered by means of a local tweak and a light SMTP extension. The tweak on the sender side consists of a local encoding of the envelope sender that lets the sending software know that a message is being forwarded, and provides a parameter for either negotiating an agreement or using an existing one. That requires to set the ''-f'' command switch accordingly. The tweaked envelope sender only lives locally, i.e. on the relevant host or ADMD. The extension on the receiver side is an EHLO keyword to let the sending software know that the specific MX being contacted is also willing to use forwarding agreements.
The negotiation required to establish a forwarding agreement can be quite complicate, especially for the first agreement between two organizations. By contrast, using an existing agreement is very cheap: the sender finds the id/password pair in a local database, and the remote MX authenticates it normally.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the negotiation handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The ''ff'' idea arose in a discussion originated on the spf-discuss list in January 2008[http://www.listbox.com/member/archive/735/2008/01/sort/thread_rev/page/1/entry/11:265/20080131110008:4871D6CE-D015-11DC-8216-54C5B46F41FF/]. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG[http://www.nabble.com/Yet-another-attempt-to-fix-forwarding-td15177052.html] and Courier-users[http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg30908.html] mailing lists, where it just originated more or less (respectively) responses on SPF/SRS topics only. The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born.
4de8a4f5249cdf6add658c03f0e92703c7d3c99c
1475
1462
2008-12-23T15:46:34Z
Ale
1
/* Summary */ wording
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements, matching one-to-one with the corresponding elements at the senders' alias expansion lists.
Agreements are classified into different categories, e.g., static ''.forward'' files, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection as desired. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
This model of forwarding can be triggered by means of a local tweak and a light SMTP extension. The tweak on the sender side consists of a local encoding of the envelope sender that lets the sending software know that a message is being forwarded, and provides a parameter for either negotiating an agreement or using an existing one. This has to be enabled by setting the ''-f'' command switch accordingly, for each recipe. The tweaked envelope sender only lives locally, i.e. on the relevant host or ADMD. The extension on the receiver side is an EHLO keyword to let the sending software know that the specific MX being contacted is also willing to use forwarding agreements.
The negotiation required to establish a forwarding agreement can be quite complicate, especially for the first agreement between two organizations. It provides for a three-way handshake during which the servers exchange the relevant credentials and URLs required to re-negotiate the agreement. By contrast, normal use of an existing agreement is very cheap: the sender finds the id/password pair in a local database, and the remote MX authenticates it normally.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the negotiation handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The ''ff'' idea arose in a discussion originated on the spf-discuss list in January 2008[http://www.listbox.com/member/archive/735/2008/01/sort/thread_rev/page/1/entry/11:265/20080131110008:4871D6CE-D015-11DC-8216-54C5B46F41FF/]. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG[http://www.nabble.com/Yet-another-attempt-to-fix-forwarding-td15177052.html] and Courier-users[http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg30908.html] mailing lists, where it just originated more or less (respectively) responses on SPF/SRS topics only. The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born.
9e11c11f614a81ef61b2c32e6cdfd5a45e9de5e2
boundary filter
0
13
1460
1434
2008-12-08T13:45:53Z
Ale
1
/* DNSBL */ mention whitelisting the forwarder itself
wikitext
text/x-wiki
A '''boundary filter''' is a mail filter that is preferably operated at the [[boundary]] between the originating and the receiving networks.
== DNSBL ==
DNS Block Lists are IP addresses of known spammers or compromised machines. Looking up the remote IP of an incoming SMTP connection is commonly used for avoiding a good percentage of spam. Obviously, this operation has to be done at the boundary. Otherwise, only the last forwarder's IP address can be checked.
Some users don't want their mail to be filtered against some or all DNSBL, though. They possibly counter spam by avoiding to publish their email address. A server may accomplish such kind of request by setting an environment flag in case the remote IP is blacklisted, then check user's preferences on each RCPT command. When this can be done, the negotiation of a [[forwarding agreement]] should include a list of available DNSBL, letting the target host choose on behalf of the user which of them should be enabled or disabled. This option makes more sense for single-recipient forwarding recipes than for, say, mailing lists.
A completely different requirement is that the receiver whitelists the forwarder itself, in case the latter gets blacklisted. A receiver should only grant such a privilege to hosts that have been thoroughly identified, e.g. gathering trusted administrative and technical contacts during the handshake.
== SPF ==
Sender Policy Framework checks must be done at the boundary. Blocking forged addresses appeared a good idea in 2003. However, some argue that SPF breaks forwarding; other counter-argue that forwarding is broken since RFC 1123.
Requiring that the forwarder carries out SPF checks, adds ''Received-SPF'' headers, and rejects messages that ''fail'' the SPF authorization, is expected to be a typical requirement of the [[forwarding agreement]] negotiation.
Negotiating a forwarding agreement may set the ''non-disclosure'' flag in the corresponding forwarding recipe under certain circumstances. In that case, the forwarder must set the envelope sender to ''null'' or to a bounce address provided by the target host. For all other cases, there is no need to use SRS or any other sender replacement, since the forwarder is exempted from SPF checks under the agreement.
== Other filters ==
Anti-virus, DKIM, S/MIME, and other forms of authentication or authorization can be performed anywhere along the path. Running them sooner rather than later is trading bandwidth for CPU cycles. ''FixForwarding'' doesn't prescribe any particular behavior for these filters, encouraging hosts to run them as they routinely do. However, the negotiation stage may provide for exchanging a path for reporting message-specific or statistical information related to these filters, e.g. a feedback loop.
f209e9adc1923890e61846988b9288b574549adc
1461
1460
2008-12-08T14:27:55Z
Ale
1
/* SPF */ relationship with
wikitext
text/x-wiki
A '''boundary filter''' is a mail filter that is preferably operated at the [[boundary]] between the originating and the receiving networks.
== DNSBL ==
DNS Block Lists are IP addresses of known spammers or compromised machines. Looking up the remote IP of an incoming SMTP connection is commonly used for avoiding a good percentage of spam. Obviously, this operation has to be done at the boundary. Otherwise, only the last forwarder's IP address can be checked.
Some users don't want their mail to be filtered against some or all DNSBL, though. They possibly counter spam by avoiding to publish their email address. A server may accomplish such kind of request by setting an environment flag in case the remote IP is blacklisted, then check user's preferences on each RCPT command. When this can be done, the negotiation of a [[forwarding agreement]] should include a list of available DNSBL, letting the target host choose on behalf of the user which of them should be enabled or disabled. This option makes more sense for single-recipient forwarding recipes than for, say, mailing lists.
A completely different requirement is that the receiver whitelists the forwarder itself, in case the latter gets blacklisted. A receiver should only grant such a privilege to hosts that have been thoroughly identified, e.g. gathering trusted administrative and technical contacts during the handshake.
== SPF ==
Sender Policy Framework checks must be done at the boundary. Blocking forged addresses appeared a good idea in 2003. However, some argue that SPF breaks forwarding; other counter-argue that forwarding is broken since RFC 1123.
Requiring that the forwarder carries out SPF checks, adds ''Received-SPF'' headers, and rejects messages that ''fail'' the SPF authorization, is expected to be a typical requirement of the [[forwarding agreement]] negotiation.
Negotiating a forwarding agreement may set the ''non-disclosure'' flag in the corresponding forwarding recipe under certain circumstances. In that case, the forwarder must set the envelope sender to ''null'' or to a bounce address provided by the target host. For all other cases, there is no need to use SRS or any other sender replacement, since the forwarder is exempted from SPF checks under the agreement.
=== N.B.: Relationship with SPF ===
Besides historical considerations, SPF happens to address the question "''who may legally use a domain name?''" That is strictly related with the privacy question "''who may legally use my email address?''" The latter is the main concern of the [[solution proposed]].
== Other filters ==
Anti-virus, DKIM, S/MIME, and other forms of authentication or authorization can be performed anywhere along the path. Running them sooner rather than later is trading bandwidth for CPU cycles. ''FixForwarding'' doesn't prescribe any particular behavior for these filters, encouraging hosts to run them as they routinely do. However, the negotiation stage may provide for exchanging a path for reporting message-specific or statistical information related to these filters, e.g. a feedback loop.
d10487784a41066d73cb01458e6e059f6bcc200b
privacy laws
0
17
1463
2008-12-20T10:54:17Z
Ale
1
Created page
wikitext
text/x-wiki
By '''privacy laws''' we mean any of the legal frameworks that regulate information privacy in the USA, EU, and several national countries. Although not exactly uniform, the existing bodies of rules tend to converge toward certain principles aimed at protecting people against undiscriminated usage of collected ''personally identifiable information'', a.k.a. ''personal data''.
== Freedom in the digital era ==
Advancements in electronics allow to exercise pervasive and widespread control on what the people do. Digital control can provide for appealing means for implementing commercial practices on unprecedentedly wide scales. While customers used to be able to guard against a shopkeeper foxiness by themselves, they are defenseless when confronted with large business enterprises who systematically exchange their customers' PI information with one another.
As it often happens during the transition from an era to the next, criteria and even laws that have been stipulated in times when their enforcement was provided by radically different means, may become questionable. The efforts undertaken thus far to define the legal terms and the issues implied by the new scenario, are the first chisel blows for establishing the future shape.
The Internet protocols that make this all possible, including SMTP, have necessarily been designed before it all began.
== Implementing the law ==
''Opt-in'' and ''opt-out'' are two key concept for regulating how commercial newsletters may be sent. The SMTP protocol talks about ''mailing lists'', not newsletters. Technically, they are the same thing, since the exact working of the subscribe and unsubscribe operations is not specified rigorously.
RFC 2369 mandates some headers with special URLs. The ''List-Unsubscribe'' header field contains the command to directly unsubscribe from the list. However, mail clients usually don't show it to the user. A possible reason for that uncooperative behavior may lay in the unknown nature of the command, that may expose the user to security risks if programmed by a malicious sender.
In addition, whatever method of subscribe or unsubscribe gets executed, users are given just a notice of the outcome of the operation, that they seldom save or print. The data remains at the lists owners', which makes it hard to take legal stances. There is no need to take legal actions, because legitimate senders always honor users commands; however, such tautological statements contribute to make ''spam'' a fuzzy term.
An email address is considered personally identifiable data. The agreement of its owner is required for storing and using that data. Its owner has the right to amend or delete it. It is the law. The [[solution proposed]] provides for a standard unsubscribe method, and provides for a copy of the users commands to be kept by their ESPs.
8da3d613010802a6f51e301aa0ded803b4adfdc3
Main Page
0
1
1464
1443
2008-12-20T10:56:14Z
Ale
1
/* The solution: Standardize forwarding practices */ shortened
wikitext
text/x-wiki
<big>'''Once upon a time SMTP was a simple protocol...'''</big>
[[Forwarding]] is a generally used but not thoroughly considered feature of Internet email architecture. Admins and power users have the ability to unilaterally add ''[[forwarding recipe]]s'' onto a server, so that email messages destined to a given mailbox are forwarded or exploded to the recipients thus configured.
In the horrid mess that is Internet Email nowadays, a jungle where illegal spam messages largely outweigh legitimate ones, forwarding stands out as a prominent problem. Let's fix it.
== The problem ==
Savage forwarding produces quite some shortcomings:
* Recipients have no means to directly control the forwarding mechanism.
* Responsibility for injecting spam becomes ambiguous.
* Bounces may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
== The solution: Standardize forwarding practices ==
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
a577f44097be4aa65c6eb0c351b8db234879f215
Forwarding
0
9
1465
1422
2008-12-20T11:04:02Z
Ale
1
/* See also */ added David's link
wikitext
text/x-wiki
Mail '''forwarding''' is the act of transferring a message from the server where the message recently arrived to another server that is deemed nearer to the intended recipient(s).
== Meaning of the term in this site ==
We focus on two types of message transferring that servers do automatically upon receiving a message: possibly altering the envelope or leaving it intact.
=== Forwarding with a new envelope ===
The receiving server finds a [[forwarding recipe]] corresponding to one of the message's recipient addresses, and it honors it by
* replacing the recipient address with the ones listed in the recipe, and
* replacing the ''sender address'', according to the recipe's policy.
The server address defines the behavior of the email system in the case of delivery failures: Even if the next server will accept the forwarded message, a delivery failure may occur further downstream. In that case, a failure notice should be delivered to the mailbox defined by setting the sender address at this stage. Therefore, there are a few considerations that may affect the policy:
# Should the forwarding recipe be modified as a consequence of delivery failures?
# Should the replaced recipient addresses be made known to the upstream sender?
This action is described in section 3.9.2 of <nowiki>RFC 5321</nowiki>, ''List''. Note that the preceding section 3.9.1 of that RFC, ''Alias'', describes a forwarding method useful for ''intra-domain'' forwarding. See below.
=== Forwarding with the same envelope===
This is the operation that a ''backup MX'' accomplishes to deliver messages to primary MXes of the given domain, where further processing may occur. It may happen that a relay, e.g. the author's outgoing mail server, cannot reach a primary MX for a given recipient. That may occur if the target server is temporarily unreachable. Thus, secondary MXes can cope with network outages.
== Forwarding agreement solution ==
<!-- TODO: add template {{main|Forwarding agreement}} -->
''Main article: [[forwarding agreement]]''
An MX server who accepts such specific form of agreement should advertise it during the SMTP handshake. A forwarder may then choose to come into an agreement, or just submit mail without worrying about reputation and deliverability. Concluding the agreement requires a policy match involving the forwarder and the recipient. End users set their policies specifying relevant options at the target MX, or just accepting the default.
After the agreement has been set up, the forwarder is supplied with a valid user id and password which are only valid for forwarding that kind of mail to the given recipient.
== Other acceptations of ''forwarding'' ==
That term is commonly used for the manual operation initiated by users by clicking on the ''Forward'' button of their MUAs. From the SMTP point of view, that action is not a forwarding, in the sense that the new message will have a new envelope, a new Message-ID, and a possibly altered content.
In addition, '''alias expansion''' is often referred by this term. The main difference between forwarding and alias expansion, according to SMTP, is that the latter does not alter the envelope sender. If the operation is carried out on the same server, it may not undergo a new SMTP transaction, and just write the message to a different location on disc. However, it is still quite common for servers to forward messages badly omitting to properly set a new envelope sender: while technically resembling an alias expansion, ''ill forwarding'' breaks protocols that depend on the envelope sender, e.g. [http://www.openspf.org/ SPF].
== See also ==
* [[wp:Email forwarding]]
* [http://open-mail.org/MHSmodel.html Models for Mail Handling Systems]
* RFC 5321 Simple Mail Transfer Protocol, section 3.9
63aab9eb418e3a9aba28355da637981a4d070271
Talk:Forwarding
1
18
1466
2008-12-21T17:20:15Z
Macquigg
2
Definition of Forwarding
wikitext
text/x-wiki
The definition for forwarding needs to be much more limited. Here is a suggestion:
Forwarding is the act of transferring a message to another recipient address. The change in recipient address is what distinguishes Forwarding from other types of relaying. Relays using the SMTP protocol implement Forwarding by changing the address in the RCPT TO command.
bd34622dff18d09231fddfccd264d76cb6547838
1467
1466
2008-12-21T17:22:27Z
Macquigg
2
wikitext
text/x-wiki
The definition for forwarding needs to be much more specific. Here is a suggestion:
Forwarding is the act of transferring a message to another recipient address. The change in recipient address is what distinguishes Forwarding from other types of relaying. Relays using the SMTP protocol implement Forwarding by changing the address in the RCPT TO command.
e7a7b41b30578e21d38dbf3f78e4316d255d5db6
1468
1467
2008-12-21T17:51:22Z
Ale
1
answer to David
wikitext
text/x-wiki
The definition for forwarding needs to be much more specific. Here is a suggestion:
Forwarding is the act of transferring a message to another recipient address. The change in recipient address is what distinguishes Forwarding from other types of relaying. Relays using the SMTP protocol implement Forwarding by changing the address in the RCPT TO command.
:Forwarding is a fuzzy SMTP term, also because of how it is used in section 3.9 of RFC 5321. In addition, forwarding in ''our sense'' can be also done by a backup MX, without changing the envelope recipient. [[User:Ale|Ale]] 17:51, 21 December 2008 (GMT)
8fd636062734ef29f48d1dbd02e341c01b79cb35
1469
1468
2008-12-21T20:01:13Z
Macquigg
2
wikitext
text/x-wiki
The definition for forwarding needs to be much more specific. Here is a suggestion:
Forwarding is the act of transferring a message to another recipient address. The change in recipient address is what distinguishes Forwarding from other types of relaying. Relays using the SMTP protocol implement Forwarding by changing the address in the RCPT TO command.
:Forwarding is a fuzzy SMTP term, also because of how it is used in section 3.9 of RFC 5321. In addition, forwarding in ''our sense'' can be also done by a backup MX, without changing the envelope recipient. [[User:Ale|Ale]] 17:51, 21 December 2008 (GMT)
We need to avoid the fuzzy terms, and get very specific about what we mean. We already have a general term, relaying, which includes Forwarding and other actions, such as the MX relay you mentioned, open relays, and relays used as transmitters on behalf of domains wanting better deliverability. Each of these forms of relaying has its own set of problems, and if we lump them all into "Forwarding", we won't be able to come up with a simple solution to the "forwarding problem". For example, a backup MX must check periodically to see if the primary MX is up, and then transfer all the mail it has accumulated.
Conversely, there are things we will ask of Forwarders that we don't expect a backup MX to worry about, because there is a direct relationship between the backup MX and the primary MX. They must be "tightly coupled", presumably under one management, so the authentication requirements we expect Forwarders to abide by don't apply. If we ask all relays to set up authentication records, we will have a huge problem with non-compliance.
The fundamental reason for the "forwarding problem" is the lack of a prior relationship between the Forwarder and the MDA (or downstream Agent). We should limit our definition of Forwarding to just those situations that are likely to have this problem. The narrower definition is also what I believe the SPF community wants. --[[User:Macquigg|Macquigg]] 20:01, 21 December 2008 (GMT)
32d51c7cf0e952f29f3febea210c236958053426
1470
1469
2008-12-22T06:35:15Z
Ale
1
Backup MXes
wikitext
text/x-wiki
The definition for forwarding needs to be much more specific. Here is a suggestion:
Forwarding is the act of transferring a message to another recipient address. The change in recipient address is what distinguishes Forwarding from other types of relaying. Relays using the SMTP protocol implement Forwarding by changing the address in the RCPT TO command.
:Forwarding is a fuzzy SMTP term, also because of how it is used in section 3.9 of RFC 5321. In addition, forwarding in ''our sense'' can be also done by a backup MX, without changing the envelope recipient. [[User:Ale|Ale]] 17:51, 21 December 2008 (GMT)
We need to avoid the fuzzy terms, and get very specific about what we mean. We already have a general term, relaying, which includes Forwarding and other actions, such as the MX relay you mentioned, open relays, and relays used as transmitters on behalf of domains wanting better deliverability. Each of these forms of relaying has its own set of problems, and if we lump them all into "Forwarding", we won't be able to come up with a simple solution to the "forwarding problem". For example, a backup MX must check periodically to see if the primary MX is up, and then transfer all the mail it has accumulated.
Conversely, there are things we will ask of Forwarders that we don't expect a backup MX to worry about, because there is a direct relationship between the backup MX and the primary MX. They must be "tightly coupled", presumably under one management, so the authentication requirements we expect Forwarders to abide by don't apply. If we ask all relays to set up authentication records, we will have a huge problem with non-compliance.
The fundamental reason for the "forwarding problem" is the lack of a prior relationship between the Forwarder and the MDA (or downstream Agent). We should limit our definition of Forwarding to just those situations that are likely to have this problem. The narrower definition is also what I believe the SPF community wants. --[[User:Macquigg|Macquigg]] 20:01, 21 December 2008 (GMT)
:I mostly agree with your analysis. However, there is one reason why it may be convenient to keep the definition fuzzy until the solution will have been analyzed more thoroughly.
:One reason why backup MXes need to couple with their primary is to learn what mail addresses they should reject. Traditionally, they don't have an explicit list of forwarding recipes, and deduce them from the MX records. By having an authentication record for each user they could actually create a list of valid addresses. Users preferences, e.g. about DNSBL checking, could be transferred by the same mechanisms that will have been built for explicit recipes --when it will have been built, that is.
:When spam wasn't a relevant problem, ESPs used to exchange or buy backup MX services from third parties. Helping to reinstate that possibility would be a plus. Backup MXes are not the primary concern of the FixForwarding solution, though. If we will realize that there is no piece of software or configuration setting that can be conveniently shared between the two problems, we will stop considering the second one. However, I don't think it's advantageous to blow that chance ''before'' realizing if that's the case. [[User:Ale|Ale]] 06:35, 22 December 2008 (GMT)
d4df4646309017ea9040923f655d3b4830701e4d
1472
1470
2008-12-22T18:45:18Z
Macquigg
2
wikitext
text/x-wiki
The definition for forwarding needs to be much more specific. Here is a suggestion:
Forwarding is the act of transferring a message to another recipient address. The change in recipient address is what distinguishes Forwarding from other types of relaying. Relays using the SMTP protocol implement Forwarding by changing the address in the RCPT TO command.
:Forwarding is a fuzzy SMTP term, also because of how it is used in section 3.9 of RFC 5321. In addition, forwarding in ''our sense'' can be also done by a backup MX, without changing the envelope recipient. [[User:Ale|Ale]] 17:51, 21 December 2008 (GMT)
We need to avoid the fuzzy terms, and get very specific about what we mean. We already have a general term, relaying, which includes Forwarding and other actions, such as the MX relay you mentioned, open relays, and relays used as transmitters on behalf of domains wanting better deliverability. Each of these forms of relaying has its own set of problems, and if we lump them all into "Forwarding", we won't be able to come up with a simple solution to the "forwarding problem". For example, a backup MX must check periodically to see if the primary MX is up, and then transfer all the mail it has accumulated.
Conversely, there are things we will ask of Forwarders that we don't expect a backup MX to worry about, because there is a direct relationship between the backup MX and the primary MX. They must be "tightly coupled", presumably under one management, so the authentication requirements we expect Forwarders to abide by don't apply. If we ask all relays to set up authentication records, we will have a huge problem with non-compliance.
The fundamental reason for the "forwarding problem" is the lack of a prior relationship between the Forwarder and the MDA (or downstream Agent). We should limit our definition of Forwarding to just those situations that are likely to have this problem. The narrower definition is also what I believe the SPF community wants. --[[User:Macquigg|Macquigg]] 20:01, 21 December 2008 (GMT)
:I mostly agree with your analysis. However, there is one reason why it may be convenient to keep the definition fuzzy until the solution will have been analyzed more thoroughly.
:One reason why backup MXes need to couple with their primary is to learn what mail addresses they should reject. Traditionally, they don't have an explicit list of forwarding recipes, and deduce them from the MX records. By having an authentication record for each user they could actually create a list of valid addresses. Users preferences, e.g. about DNSBL checking, could be transferred by the same mechanisms that will have been built for explicit recipes --when it will have been built, that is.
:When spam wasn't a relevant problem, ESPs used to exchange or buy backup MX services from third parties. Helping to reinstate that possibility would be a plus. Backup MXes are not the primary concern of the FixForwarding solution, though. If we will realize that there is no piece of software or configuration setting that can be conveniently shared between the two problems, we will stop considering the second one. However, I don't think it's advantageous to blow that chance ''before'' realizing if that's the case. [[User:Ale|Ale]] 06:35, 22 December 2008 (GMT)
OK, we'll keep the definitions fuzzy on the main pages, and I will try to clarify each time I am sssuming a more specific definition. When I capitalize a word like Forwarder, it means the definition is special.
62e2a26496a136e1a9863b96cc3f4feace000136
1473
1472
2008-12-22T18:45:49Z
Macquigg
2
wikitext
text/x-wiki
The definition for forwarding needs to be much more specific. Here is a suggestion:
Forwarding is the act of transferring a message to another recipient address. The change in recipient address is what distinguishes Forwarding from other types of relaying. Relays using the SMTP protocol implement Forwarding by changing the address in the RCPT TO command.
:Forwarding is a fuzzy SMTP term, also because of how it is used in section 3.9 of RFC 5321. In addition, forwarding in ''our sense'' can be also done by a backup MX, without changing the envelope recipient. [[User:Ale|Ale]] 17:51, 21 December 2008 (GMT)
We need to avoid the fuzzy terms, and get very specific about what we mean. We already have a general term, relaying, which includes Forwarding and other actions, such as the MX relay you mentioned, open relays, and relays used as transmitters on behalf of domains wanting better deliverability. Each of these forms of relaying has its own set of problems, and if we lump them all into "Forwarding", we won't be able to come up with a simple solution to the "forwarding problem". For example, a backup MX must check periodically to see if the primary MX is up, and then transfer all the mail it has accumulated.
Conversely, there are things we will ask of Forwarders that we don't expect a backup MX to worry about, because there is a direct relationship between the backup MX and the primary MX. They must be "tightly coupled", presumably under one management, so the authentication requirements we expect Forwarders to abide by don't apply. If we ask all relays to set up authentication records, we will have a huge problem with non-compliance.
The fundamental reason for the "forwarding problem" is the lack of a prior relationship between the Forwarder and the MDA (or downstream Agent). We should limit our definition of Forwarding to just those situations that are likely to have this problem. The narrower definition is also what I believe the SPF community wants. --[[User:Macquigg|Macquigg]] 20:01, 21 December 2008 (GMT)
:I mostly agree with your analysis. However, there is one reason why it may be convenient to keep the definition fuzzy until the solution will have been analyzed more thoroughly.
:One reason why backup MXes need to couple with their primary is to learn what mail addresses they should reject. Traditionally, they don't have an explicit list of forwarding recipes, and deduce them from the MX records. By having an authentication record for each user they could actually create a list of valid addresses. Users preferences, e.g. about DNSBL checking, could be transferred by the same mechanisms that will have been built for explicit recipes --when it will have been built, that is.
:When spam wasn't a relevant problem, ESPs used to exchange or buy backup MX services from third parties. Helping to reinstate that possibility would be a plus. Backup MXes are not the primary concern of the FixForwarding solution, though. If we will realize that there is no piece of software or configuration setting that can be conveniently shared between the two problems, we will stop considering the second one. However, I don't think it's advantageous to blow that chance ''before'' realizing if that's the case. [[User:Ale|Ale]] 06:35, 22 December 2008 (GMT)
OK, we'll keep the definitions fuzzy on the main pages, and I will try to clarify each time I am sssuming a more specific definition. When I capitalize a word like Forwarder, it means the definition is special.--[[User:Macquigg|Macquigg]] 18:45, 22 December 2008 (GMT)
13b685b51b0dfc0d8d5e6e32560173e22170578b
Talk:solution proposed
1
19
1471
2008-12-22T18:43:25Z
Macquigg
2
simpler solution
wikitext
text/x-wiki
The forwarding agreement should be simple - an MDA should accept all mail transmitted by this domain to that recipient, and not get involved in spam reporting. The assumptions on forwarded mail are that the Forwarder has already performed spam filtering and other Border functions per the recipient's instructions. The recipient should report spam directly to the Forwarder, not to the MDA.
Likewise, if there is a problem separating one mailing list from another, it should be resolved between the recipient and the Forwarder, and not involve the MDA. We need to keep the forwarding agreement simple, or there will be no universal solution.
Another simplifying assumption is that the MDA will not re-forward any mail (no chain forwarding). There is no good reason for re-forwarding, and it can only lead to confusion in reporting spam and handling bounces. Recipients should understand (and Forwarders should make sure they understand) how forwarding works, and why chain forwarding is unnecessary and unreliable.
MDAs that allow domain-level white listing are already set up to allow forwarding. No special software is required. Note, however, that the whitelisted domain must be that of the Forwarder, not the domain in the Return Address or in any address in the message headers.
The mechanism for setting up a forwarding agreement should not require any new protocols or even extensions of existing protocols. It should be easily automated, but should also work for small domains that have no such automation. A standard request form, from postmaster to postmaster, should be sufficient. For example:
=== Forwarding Request ===
To: postmaster@mda.com
From: postmaster@forwarder.com
Subject: Forwarding Request 8xPk7e
Forwarding Domain: <forwarder.com>
Transmitters: [235.66.107.32-5]
Recipient Address: <recipient@mda.com>
This recipient has requested that we forward mail to your domain. You should
verify this with your recipient.
To accept this request, return this message with the subject line unaltered. To
refuse this request, just ignore it. To discontinue forwarding at any time in
the future, send an SMTP REJECT in reply to the RCPT TO: command. This will
happen normally when the recipient account is removed from your domain.
Please whitelist mail forwarded from our domain to this recipient. This mail
has been processed per the recipient's instructions, and needs no further
filtering.
Do not report as spam any mail forwarded under this arrangement. The recipient
will report spam directly to us at <spam_report@forwarder.com>.
Thank you for your time and attention.
Notice the following features:
1) The subject line is standardized for automated processing - two keywords and an authentication code. The code may be used to verify that a reply is valid.
2) The first three lines of the message body are also set up for automated processing. The information is complete and unambiguous, yet still human readable.
3) The remainder of the message has simple, complete, and unambiguous instructions for someone who might be seeing this kind of request for the first time.
--[[User:Macquigg|Macquigg]] 18:43, 22 December 2008 (GMT)
5c0b77e6a1ca59bb786e186bd2ad896f28bac66e
1474
1471
2008-12-23T15:25:36Z
Ale
1
Reasons to ''complicate'' the solution
wikitext
text/x-wiki
The forwarding agreement should be simple - an MDA should accept all mail transmitted by this domain to that recipient, and not get involved in spam reporting. The assumptions on forwarded mail are that the Forwarder has already performed spam filtering and other Border functions per the recipient's instructions. The recipient should report spam directly to the Forwarder, not to the MDA.
Likewise, if there is a problem separating one mailing list from another, it should be resolved between the recipient and the Forwarder, and not involve the MDA. We need to keep the forwarding agreement simple, or there will be no universal solution.
Another simplifying assumption is that the MDA will not re-forward any mail (no chain forwarding). There is no good reason for re-forwarding, and it can only lead to confusion in reporting spam and handling bounces. Recipients should understand (and Forwarders should make sure they understand) how forwarding works, and why chain forwarding is unnecessary and unreliable.
MDAs that allow domain-level white listing are already set up to allow forwarding. No special software is required. Note, however, that the whitelisted domain must be that of the Forwarder, not the domain in the Return Address or in any address in the message headers.
The mechanism for setting up a forwarding agreement should not require any new protocols or even extensions of existing protocols. It should be easily automated, but should also work for small domains that have no such automation. A standard request form, from postmaster to postmaster, should be sufficient. For example:
=== Forwarding Request ===
To: postmaster@mda.com
From: postmaster@forwarder.com
Subject: Forwarding Request 8xPk7e
Forwarding Domain: <forwarder.com>
Transmitters: [235.66.107.32-5]
Recipient Address: <recipient@mda.com>
This recipient has requested that we forward mail to your domain. You should
verify this with your recipient.
To accept this request, return this message with the subject line unaltered. To
refuse this request, just ignore it. To discontinue forwarding at any time in
the future, send an SMTP REJECT in reply to the RCPT TO: command. This will
happen normally when the recipient account is removed from your domain.
Please whitelist mail forwarded from our domain to this recipient. This mail
has been processed per the recipient's instructions, and needs no further
filtering.
Do not report as spam any mail forwarded under this arrangement. The recipient
will report spam directly to us at <spam_report@forwarder.com>.
Thank you for your time and attention.
Notice the following features:
1) The subject line is standardized for automated processing - two keywords and an authentication code. The code may be used to verify that a reply is valid.
2) The first three lines of the message body are also set up for automated processing. The information is complete and unambiguous, yet still human readable.
3) The remainder of the message has simple, complete, and unambiguous instructions for someone who might be seeing this kind of request for the first time.
--[[User:Macquigg|Macquigg]] 18:43, 22 December 2008 (GMT)
== Reasons to ''complicate'' the solution ==
The simpler the solution, the tougher. Why do more than is strictly necessary?
=== Reporting spam ===
Users at MDA.com, the broad-sense ''mail delivery agent'' exemplified above, have no formal method to distinguish forwarded messages from the rest of their mail. What tool do they use to report spam? Spam reporting is slowly getting standardized. However, currently only its format has been the subject of a proposed draft; see [[wp:Feedback Loop (email)]].
A ''Report Spam'' button displayed in the context of a message forwarded according to a subscription is ambiguous, since it may be used to either unsubscribe from the mailing list, or signal to the list owner that the message displayed is spam. Users would get the second meaning only if the button is list-specific, which implies the ability to automatically distinguish which list of which forwarder a specific message belongs to. (The latter information should be carried by an ''Authentication-Results'' or similar header, since ''Received'' headers are difficult to parse.)
On the other hand, even if it were clear where spam reports should be addressed, MUAs may prefer not to get in touch with unknown hosts for security reasons, as it happens for ''List-Unsubscribe'' of RFC 2369. Hence, it seems more practicable to uniformly direct all spam reports to the server that is directly responsible for delivering to the given mailbox.
=== Chain forwarding ===
Users choose a mailbox (web, IMAP, POP3) server based on a number of criteria, including convenience, availability, costs. However, they may also want to keep using email addresses at other domains for a variety of reasons, e.g. because it is the place where they work, or they have digital certificates or signed keys that include a given address, or they just gave the address to so many people and places that it will take some time to change it. The only solution in those cases is forwarding, at least temporarily.
=== Users preferences ===
DNSBL filtering may be considered unreliable without proper whitelisting, since there are large free falling ISPs that don't care being blacklisted, and are still very popular in their area. Some people opt for never publishing their email address, that way they are never targeted by spammers. They would rather skip DNSBL filtering altogether, unless whitelisting were available.
In general, reputation services are based on people judgment. Imposing the choice of a fixed set of reputation services can be a characterizing feature of certain ESPs, but it makes no sense for forwarding. Even if the exemplified procedure mentions processing ''per the recipient's instructions'', it is not clear where those instructions are stored and how the recipient can change them.
=== Automating the process ===
The exemplified request avoids the only SMTP extension formally required by the [[solution proposed]] by replacing the ''EHLO advertised URL'' with, e.g., ''postmaster@MDA.com''.
The advantage of SMTP transport is that an handshake can be carried out even without software support. Good point. SOAP can use SMTP transport too; however, that's less readable.
A one-way handshake is certainly simpler than a three-way one. It is also less customizable. Postmaster@forwarder.com will never know whether a request has been refused (and why) or it is just taking more time to be accepted. A new agreement will be needed if MDA.com has to change its transmitters' IPs.
Finally, I think that the advantage of attempting a standardization is that compliant software can be written. I would be available to small and large domains alike.
[[User:Ale|Ale]] 15:25, 23 December 2008 (GMT)
4430a036a6c0030db67a8774491926c30ec7cd57
1476
1474
2008-12-24T20:23:05Z
Macquigg
2
Forwarding Setup Confirmation
wikitext
text/x-wiki
The forwarding agreement should be simple - an MDA should accept all mail transmitted by this domain to that recipient, and not get involved in spam reporting. The assumptions on forwarded mail are that the Forwarder has already performed spam filtering and other Border functions per the recipient's instructions. The recipient should report spam directly to the Forwarder, not to the MDA.
Likewise, if there is a problem separating one mailing list from another, it should be resolved between the recipient and the Forwarder, and not involve the MDA. We need to keep the forwarding agreement simple, or there will be no universal solution.
Another simplifying assumption is that the MDA will not re-forward any mail (no chain forwarding). There is no good reason for re-forwarding, and it can only lead to confusion in reporting spam and handling bounces. Recipients should understand (and Forwarders should make sure they understand) how forwarding works, and why chain forwarding is unnecessary and unreliable.
MDAs that allow domain-level white listing are already set up to allow forwarding. No special software is required. Note, however, that the whitelisted domain must be that of the Forwarder, not the domain in the Return Address or in any address in the message headers.
The mechanism for setting up a forwarding agreement should not require any new protocols or even extensions of existing protocols. It should be easily automated, but should also work for small domains that have no such automation. A standard request form, from postmaster to postmaster, should be sufficient. For example:
== Forwarding Request ==
To: postmaster@mda.com
From: postmaster@forwarder.com
Subject: Forwarding Request 8xPk7e
Forwarding Domain: <forwarder.com>
Transmitters: [235.66.107.32-5]
Recipient Address: <recipient@mda.com>
This recipient has requested that we forward mail to your domain. You should
verify this with your recipient.
To accept this request, return this message with the subject line unaltered. To
refuse this request, just ignore it. To discontinue forwarding at any time in
the future, send an SMTP REJECT in reply to the RCPT TO: command. This will
happen normally when the recipient account is removed from your domain.
Please whitelist mail forwarded from our domain to this recipient. This mail
has been processed per the recipient's instructions, and needs no further
filtering.
Do not report as spam any mail forwarded under this arrangement. The recipient
will report spam directly to us at <spamreports@forwarder.com>.
Thank you for your time and attention.
Notice the following features:
1) The subject line is standardized for automated processing - two keywords and an authentication code. The code may be used to verify that a reply is valid.
2) The first three lines of the message body are also set up for automated processing. The information is complete and unambiguous, yet still human readable.
3) The remainder of the message has simple, complete, and unambiguous instructions for someone who might be seeing this kind of request for the first time.
--[[User:Macquigg|Macquigg]] 18:43, 22 December 2008 (GMT)
== Reasons to ''complicate'' the solution ==
The simpler the solution, the tougher. Why do more than is strictly necessary?
=== Reporting spam ===
Users at MDA.com, the broad-sense ''mail delivery agent'' exemplified above, have no formal method to distinguish forwarded messages from the rest of their mail. What tool do they use to report spam? Spam reporting is slowly getting standardized. However, currently only its format has been the subject of a proposed draft; see [[wp:Feedback Loop (email)]].
A ''Report Spam'' button displayed in the context of a message forwarded according to a subscription is ambiguous, since it may be used to either unsubscribe from the mailing list, or signal to the list owner that the message displayed is spam. Users would get the second meaning only if the button is list-specific, which implies the ability to automatically distinguish which list of which forwarder a specific message belongs to. (The latter information should be carried by an ''Authentication-Results'' or similar header, since ''Received'' headers are difficult to parse.)
On the other hand, even if it were clear where spam reports should be addressed, MUAs may prefer not to get in touch with unknown hosts for security reasons, as it happens for ''List-Unsubscribe'' of RFC 2369. Hence, it seems more practicable to uniformly direct all spam reports to the server that is directly responsible for delivering to the given mailbox.
: I agree that the current confusion over spam reporting is unacceptable. I would not expect the MDA to handle all reports, however. This puts too much burden on services that will not handle the reports properly. I use yahoo.com for my MDA, and I certainly don't want them involved in processing spam that came through my Receiver, box67.com. --[[User:Macquigg|Macquigg]] 20:23, 24 December 2008 (GMT)
=== Chain forwarding ===
Users choose a mailbox (web, IMAP, POP3) server based on a number of criteria, including convenience, availability, costs. However, they may also want to keep using email addresses at other domains for a variety of reasons, e.g. because it is the place where they work, or they have digital certificates or signed keys that include a given address, or they just gave the address to so many people and places that it will take some time to change it. The only solution in those cases is forwarding, at least temporarily.
: Forwarding is good. Chain forwarding should be discouraged. It serves no good purpose, and vastly complicates authentication, spam reporting, etc. --[[User:Macquigg|Macquigg]] 20:23, 24 December 2008 (GMT)
=== Users preferences ===
DNSBL filtering may be considered unreliable without proper whitelisting, since there are large free falling ISPs that don't care being blacklisted, and are still very popular in their area. Some people opt for never publishing their email address, that way they are never targeted by spammers. They would rather skip DNSBL filtering altogether, unless whitelisting were available.
In general, reputation services are based on people judgment. Imposing the choice of a fixed set of reputation services can be a characterizing feature of certain ESPs, but it makes no sense for forwarding. Even if the exemplified procedure mentions processing ''per the recipient's instructions'', it is not clear where those instructions are stored and how the recipient can change them.
: That needs to be made clear by the Forwarder at the time the Recipient initiates forwarding. Blacklists, spam filtering, reputation assessment, and other Border defense functions should be done by the Border MTA. The MDA should handle only functions related to delivery. Things get very messy otherwise. --[[User:Macquigg|Macquigg]] 20:23, 24 December 2008 (GMT)
=== Automating the process ===
The exemplified request avoids the only SMTP extension formally required by the [[solution proposed]] by replacing the ''EHLO advertised URL'' with, e.g., ''postmaster@MDA.com''.
The advantage of SMTP transport is that an handshake can be carried out even without software support. Good point. SOAP can use SMTP transport too; however, that's less readable.
A one-way handshake is certainly simpler than a three-way one. It is also less customizable. Postmaster@forwarder.com will never know whether a request has been refused (and why) or it is just taking more time to be accepted. A new agreement will be needed if MDA.com has to change its transmitters' IPs.
Finally, I think that the advantage of attempting a standardization is that compliant software can be written. I would be available to small and large domains alike.
[[User:Ale|Ale]] 15:25, 23 December 2008 (GMT)
: I will support your efforts to get an SMTP extension. Meanwhile, we have to do the best we can with what we've got, even if it is only an interim solution. --[[User:Macquigg|Macquigg]] 20:23, 24 December 2008 (GMT)
== Forwarding Setup Confirmation ==
To: alice@forwarder.com
From: postmaster@forwarder.com
Subject: Forwarding Request 8xPk7e
Incoming address: alice@forwarder.com
Destination address: alice@mda.com
Forwarding setup page: http://forwarder.com/ForwardingSetup
Options selected: A1 B3 C2 D5 WL
Alternate address: alice-alternate@mda.com
To confirm this request, reply to this message with the subject line unaltered.
To cancel this request, just ignore this message. To avoid confusion and
possible rejection of this request, make sure proper arrangements have been
made at the destination address. Do this now, before sending the reply to this
message.
Failure to make arrangements at the destination may result in a surprising and
sudden cancellation of forwarding sometime in the future. See below for
details.
Upon receipt of this confirmation and acceptance of a "forwarding agreement" by
the destination postmaster, we will forward mail as specified above. You can
check the status of this forwarding agreement at your forwarding setup page.
You can also initiate forwarding with no agreement by the destination domain,
but see below for warnings.
We will send you a reminder once per month as long as your forwarding
arrangement is active.
****** Details on setting up forwarding at a destination domain ******
The biggest problem in forwarding is erroneous spam reports against the
Forwarder (us). If that happens, we will immediately cancel the forwarding
arranagement, and notify you at your alternate address above.
Forwarded mail should go directly to its final destination, and not be
forwarded again. "Chain forwarding" almost always leads to problems such as
authentication failures, erroneous spam reports, etc.
Spam filtering, blacklisting, and other Border defense functions should be done
just once, at the server which first receives the mail (the "Border MTA"). We
will perform these functions to the best of our ability, following the
instructions on your Recipient Options form http://forwarder.com/RecipientOptions.
Please whitelist mail forwarded by our domain to your destination address. Do
not use the destination domain's spam reporting process. Report spam directly
to us at <spamreports@forwarder.com>. See http://forwarder.com/SpamReports for
details.
If your destination domain does not provide whitelisting, or is not able to
properly authenticate our transmitters, an alternative is to set up a new
account with a private name just to store your forwarded mail. Use an address
that spammers cannot guess, like alice85770. For more recommendations, and a
list of services that support forwarding, see
http://forwarder.com/ServiceProviders.
--[[User:Macquigg|Macquigg]] 20:23, 24 December 2008 (GMT)
77a7e46a38c1c1bcf516723c24b4750501243e74
forwarding agreement
0
11
1477
1454
2008-12-27T12:52:52Z
Ale
1
/* URLs */ link to each URL's page
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the [[EHLO advertised URL]],
* the [[password changing URL]], and
* the [[policy negotiation URL]] at the sender's.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
9ceaba8651a6219018d7bf6bac3e4adabdd1c01e
1478
1477
2008-12-27T12:54:53Z
Ale
1
/* Data fields */ convert paragraphs to subsections
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP pages under https transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement.
Thus far, we have defined the following ones:
* the [[EHLO advertised URL]],
* the [[password changing URL]], and
* the [[policy negotiation URL]] at the sender's.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
20dfb42276402d78923207be1cba07278ede2df5
1484
1478
2008-12-27T17:03:58Z
Ale
1
/* URLs */ note examples of protocols using soap
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP request/response pages under HTTPS transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement. Experience published about NETCONF can be used as a guideline, see RFC 5381.
Thus far, we have defined the following URLs:
* the [[EHLO advertised URL]],
* the [[password changing URL]], and
* the [[policy negotiation URL]] at the sender's.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
1aa5dab48f0f72220293df0b44e899bd454a55de
1486
1484
2008-12-27T19:10:34Z
Ale
1
/* URLs */ FBL must be set in the 3rd URL
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP request/response pages under HTTPS transport. The certificate and its signing authority can be taken into account when deciding to grant the agreement. Experience published about NETCONF can be used as a guideline, see RFC 5381.
Thus far, we have defined the following URLs:
* the [[EHLO advertised URL]],
* the [[password/FBL URL]], and
* the [[policy negotiation URL]] at the sender's.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
16f8c0c7415b3339d39c85e6cdce2564cbd86cec
1487
1486
2008-12-27T19:17:08Z
Ale
1
/* URLs */ refine transport considerations
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP request/response pages under HTTPS transport. An advantage of SOAP is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].)
Thus far, we have defined the following URLs:
* the [[EHLO advertised URL]],
* the [[password/FBL URL]], and
* the [[policy negotiation URL]] at the sender's.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
ff1fc855295a6c3247785e20ebce9d983a3d0b60
1488
1487
2008-12-28T10:30:58Z
Ale
1
/* URLs */ rename password/FBL => completion
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP request/response pages under HTTPS transport. An advantage of SOAP is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].)
Thus far, we have defined the following URLs:
* the [[EHLO advertised URL]],
* the [[completion URL]], and
* the [[policy negotiation URL]] at the sender's.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
4dc306c22eec042e7e62b30956ff606602c4d4ce
1497
1488
2008-12-28T12:44:05Z
Ale
1
/* category */ explain static vs dynamic recipes
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and password pair, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''.
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for logging in. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. Possible categories are
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
Sometimes static recipes can be edited using web forms or other remote mechanisms. The key difference is that static recipes allow a single user with enough permissions to edit multiple addresses at once, e.g. by providing a comma separated list. Dynamic recipes allow to independently add/delete single addresses without even letting the relevant user know whether there are more addresses on the list.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the password changing URL and obtain a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP request/response pages under HTTPS transport. An advantage of SOAP is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].)
Thus far, we have defined the following URLs:
* the [[EHLO advertised URL]],
* the [[completion URL]], and
* the [[policy negotiation URL]] at the sender's.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for the given recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail address that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. As that is part of the forwarding recipe, the termination record may optionally be kept for a certain time, in order to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SMTP AUTH mechanism being used to log in, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
ea777ff73c681377b340947b1bbe198a0203b001
EHLO advertised URL
0
20
1479
2008-12-27T13:59:30Z
Ale
1
new page
wikitext
text/x-wiki
The '''EHLO advertised URL''' receives ''forwarding requests''; that is, requests for establishing a [[forwarding agreement]]. The server of the URL is an MTA ready to grant such agreements. The client is an MTA configured with a [[forwarding recipe]], that is willing to relay related messages under an agreement. As its name says, this URL is advertised by the server in its EHLO response.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
Visiting this URL constitutes the first of the three steps provided for setting up a forwarding agreement. The URL itself may change as needed, since it is only used once for each request. The clients posts (or ''sends'', if using SMTP transport) the essential data that defines the agreement:
* The ''recipe-ID''; that is, the key or authentication code of the agreement, as known by the client.
* Optionally, the ''recipe name''; this should be the incoming address at the client's in the case of static forwarding, or the newsletter or mailing list name. It should be human readable and defaults to the recipe-ID.
* The ''recipient address(es)''; the target addresses at the server's. The server will transform these into the agreement's [[forwarding agreement#user-ID|user-ID]], according to its internal data structures.
* The agreement's ''category'', one of the [[forwarding agreement#category|types defined]].
* The [[policy negotiation URL]], where the server will in turn pay a visit.
* Optionally, the ''Forwarder-ID''; this is the identity of the client as known by the server, in case the client has already entered into an agreement with the same server.
* Optionally, any evidence that may be relevant. For example, the IP address and GMT date of the user's opt-in.
The tentative list above is meant to comprise all the data to fully describe the forwarder's intentions.
The recipe-ID will be used by the server when it will in turn pay a visit to the supplied policy negotiation URL. By contrast, the ''recipe name'' is what will be visible to users.
The client is not authenticated at this stage. If a ''Forwarder-ID'' is supplied, the server should verify that the policy negotiation URL coincides with the one already stored for that ID. If not, it must discard the supplied ''Forwarder-ID''.
The server should carry out any verification that it wishes. If supplied evidence includes IP addresses that the server can verify, it should do so before they possibly change and before relevant log files are obliterated. Notice that, except for evidence, no IP addresses are involved.
=== Server response ===
The server may take several paths. When the client is known and trustworthy, the server may visit the policy URL on the fly and respond to the requester process accordingly. Likewise, if the server can estimate that the agreement is likely to be granted within a few hours, it should say so. That information is needed by the client in order to decide how to queue the message at hand.
If any verification fails, the server may reject the request and let the client try again with a better request. If the request mentions an agreement that has already been established, the server should just signal that this is a spoof retrial.
If the server requires human intervention, or other lengthy process that may eventually result in negotiating a policy and granting the agreement, it should signal so. In this case the client marks the recipe as having an agreement underway, and continues to relay as usual meanwhile. It is the server responsibility to eventually visit the policy negotiation URL, possibly for the sole purpose of canceling the pending request.
Notice that it may be convenient for the server to grant an agreement to a known spammer for the sole purpose of rejecting any mail identified that way.
b172d3a808048b15be321ef202f279898e05167e
1480
1479
2008-12-27T15:21:33Z
Ale
1
/* Semantics */ Forwarder-ID may be a hint
wikitext
text/x-wiki
The '''EHLO advertised URL''' receives ''forwarding requests''; that is, requests for establishing a [[forwarding agreement]]. The server of the URL is an MTA ready to grant such agreements. The client is an MTA configured with a [[forwarding recipe]], that is willing to relay related messages under an agreement. As its name says, this URL is advertised by the server in its EHLO response.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
Visiting this URL constitutes the first of the three steps provided for setting up a forwarding agreement. The URL itself may change as needed, since it is only used once for each request. The clients posts (or ''sends'', if using SMTP transport) the essential data that defines the agreement:
* The ''recipe-ID''; that is, the key or authentication code of the agreement, as known by the client.
* Optionally, the ''recipe name''; this should be the incoming address at the client's in the case of static forwarding, or the newsletter or mailing list name. It should be human readable and defaults to the recipe-ID.
* The ''recipient address(es)''; the target addresses at the server's. The server will transform these into the agreement's [[forwarding agreement#user-ID|user-ID]], according to its internal data structures.
* The agreement's ''category'', one of the [[forwarding agreement#category|types defined]].
* The [[policy negotiation URL]], where the server will in turn pay a visit.
* Optionally, the ''Forwarder-ID''; this is the identity of the client as known by the server, in case the client has already entered into an agreement with the same server.
* Optionally, any evidence that may be relevant. For example, the IP address and GMT date of the user's opt-in.
The tentative list above is meant to comprise all the data to fully describe the forwarder's intentions.
The recipe-ID will be used by the server when it will in turn pay a visit to the supplied policy negotiation URL. By contrast, the ''recipe name'' is what will be visible to users.
The client is not authenticated at this stage. If a ''Forwarder-ID'' is supplied, the server should verify that the policy negotiation URL coincides with the one already stored for that ID. If not recognized, the server must not use the supplied ''Forwarder-ID'' for making decisions, but may use it as a hint to synthesize the content of the corresponding field of the agreement.
The server should carry out any verification that it wishes. If supplied evidence includes IP addresses that the server can verify, it should do so before they possibly change and before relevant log files are obliterated. Notice that, except for evidence, no IP addresses are involved.
=== Server response ===
The server may take several paths. When the client is known and trustworthy, the server may visit the policy URL on the fly and respond to the requester process accordingly. Likewise, if the server can estimate that the agreement is likely to be granted within a few hours, it should say so. That information is needed by the client in order to decide how to queue the message at hand.
If any verification fails, the server may reject the request and let the client try again with a better request. If the request mentions an agreement that has already been established, the server should just signal that this is a spoof retrial.
If the server requires human intervention, or other lengthy process that may eventually result in negotiating a policy and granting the agreement, it should signal so. In this case the client marks the recipe as having an agreement underway, and continues to relay as usual meanwhile. It is the server responsibility to eventually visit the policy negotiation URL, possibly for the sole purpose of canceling the pending request.
Notice that it may be convenient for the server to grant an agreement to a known spammer for the sole purpose of rejecting any mail identified that way.
fbfc1c62ff6146ebc81b488a15e8cd3da341c706
1481
1480
2008-12-27T16:02:49Z
Ale
1
/* Semantics */ recipe name not optional
wikitext
text/x-wiki
The '''EHLO advertised URL''' receives ''forwarding requests''; that is, requests for establishing a [[forwarding agreement]]. The server of the URL is an MTA ready to grant such agreements. The client is an MTA configured with a [[forwarding recipe]], that is willing to relay related messages under an agreement. As its name says, this URL is advertised by the server in its EHLO response.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
Visiting this URL constitutes the first of the three steps provided for setting up a forwarding agreement. The URL itself may change as needed, since it is only used once for each request. The clients posts (or ''sends'', if using SMTP transport) the essential data that defines the agreement:
* The ''recipe-ID''; that is, the key or authentication code of the agreement, as known by the client.
* The ''recipe name''; this should be the incoming address at the client's in the case of static forwarding, or the newsletter or mailing list name. It should be human readable.
* The ''recipient address(es)''; the target addresses at the server's. The server will transform these into the agreement's [[forwarding agreement#user-ID|user-ID]], according to its internal data structures.
* The agreement's ''category'', one of the [[forwarding agreement#category|types defined]].
* The [[policy negotiation URL]], where the server will in turn pay a visit.
* Optionally, the ''Forwarder-ID''; this is the identity of the client as known by the server, in case the client has already entered into an agreement with the same server.
* Optionally, any evidence that may be relevant. For example, the IP address and GMT date of the user's opt-in.
The tentative list above is meant to comprise all the data to fully describe the forwarder's intentions.
The recipe-ID will be used by the server to identify itself when it will, in turn, pay a visit to the supplied policy negotiation URL. By contrast, the ''recipe name'' is what will be visible to users and should meaningfully identify the forwarding.
The client is not authenticated at this stage. If a ''Forwarder-ID'' is supplied, the server should verify that the policy negotiation URL coincides with the one already stored for that ID. If not recognized, the server must not use the supplied ''Forwarder-ID'' for making decisions, but may use it as a hint to synthesize the content of the corresponding field of the agreement.
The server should carry out any verification that it wishes. If supplied evidence includes IP addresses that the server can verify, it should do so before they possibly change and before relevant log files are obliterated. Notice that, except for evidence, no IP addresses are involved.
=== Server response ===
The server may take several paths. When the client is known and trustworthy, the server may visit the policy URL on the fly and respond to the requester process accordingly. Likewise, if the server can estimate that the agreement is likely to be granted within a few hours, it should say so. That information is needed by the client in order to decide how to queue the message at hand.
If any verification fails, the server may reject the request and let the client try again with a better request. If the request mentions an agreement that has already been established, the server should just signal that this is a spoof retrial.
If the server requires human intervention, or other lengthy process that may eventually result in negotiating a policy and granting the agreement, it should signal so. In this case the client marks the recipe as having an agreement underway, and continues to relay as usual meanwhile. It is the server responsibility to eventually visit the policy negotiation URL, possibly for the sole purpose of canceling the pending request.
Notice that it may be convenient for the server to grant an agreement to a known spammer for the sole purpose of rejecting any mail identified that way.
c0c08d9195b26f829d9a222df05dfda98d3a7096
1482
1481
2008-12-27T16:05:53Z
Ale
1
/* Semantics */ rename recipe-ID to recipe-KEY
wikitext
text/x-wiki
The '''EHLO advertised URL''' receives ''forwarding requests''; that is, requests for establishing a [[forwarding agreement]]. The server of the URL is an MTA ready to grant such agreements. The client is an MTA configured with a [[forwarding recipe]], that is willing to relay related messages under an agreement. As its name says, this URL is advertised by the server in its EHLO response.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
Visiting this URL constitutes the first of the three steps provided for setting up a forwarding agreement. The URL itself may change as needed, since it is only used once for each request. The clients posts (or ''sends'', if using SMTP transport) the essential data that defines the agreement:
* The ''recipe-KEY''; that is, the authentication code of the agreement, as known by the client.
* The ''recipe name''; this should be the incoming address at the client's in the case of static forwarding, or the newsletter or mailing list name. It should be human readable.
* The ''recipient address(es)''; the target addresses at the server's. The server will transform these into the agreement's [[forwarding agreement#user-ID|user-ID]], according to its internal data structures.
* The agreement's ''category'', one of the [[forwarding agreement#category|types defined]].
* The [[policy negotiation URL]], where the server will in turn pay a visit.
* Optionally, the ''Forwarder-ID''; this is the identity of the client as known by the server, in case the client has already entered into an agreement with the same server.
* Optionally, any evidence that may be relevant. For example, the IP address and GMT date of the user's opt-in.
The tentative list above is meant to comprise all the data to fully describe the forwarder's intentions.
The recipe-KEY will be used by the server to identify itself when it will, in turn, pay a visit to the supplied policy negotiation URL. By contrast, the ''recipe name'' is what will be visible to users and should meaningfully identify the forwarding.
The client is not authenticated at this stage. If a ''Forwarder-ID'' is supplied, the server should verify that the policy negotiation URL coincides with the one already stored for that ID. If not recognized, the server must not use the supplied ''Forwarder-ID'' for making decisions, but may use it as a hint to synthesize the content of the corresponding field of the agreement.
The server should carry out any verification that it wishes. If supplied evidence includes IP addresses that the server can verify, it should do so before they possibly change and before relevant log files are obliterated. Notice that, except for evidence, no IP addresses are involved.
=== Server response ===
The server may take several paths. When the client is known and trustworthy, the server may visit the policy URL on the fly and respond to the requester process accordingly. Likewise, if the server can estimate that the agreement is likely to be granted within a few hours, it should say so. That information is needed by the client in order to decide how to queue the message at hand.
If any verification fails, the server may reject the request and let the client try again with a better request. If the request mentions an agreement that has already been established, the server should just signal that this is a spoof retrial.
If the server requires human intervention, or other lengthy process that may eventually result in negotiating a policy and granting the agreement, it should signal so. In this case the client marks the recipe as having an agreement underway, and continues to relay as usual meanwhile. It is the server responsibility to eventually visit the policy negotiation URL, possibly for the sole purpose of canceling the pending request.
Notice that it may be convenient for the server to grant an agreement to a known spammer for the sole purpose of rejecting any mail identified that way.
33d1b2b3537c2f9654983f043bf89190a35e64b5
1483
1482
2008-12-27T16:14:17Z
Ale
1
/* Semantics */ need both an ID and a KEY for a recipe
wikitext
text/x-wiki
The '''EHLO advertised URL''' receives ''forwarding requests''; that is, requests for establishing a [[forwarding agreement]]. The server of the URL is an MTA ready to grant such agreements. The client is an MTA configured with a [[forwarding recipe]], that is willing to relay related messages under an agreement. As its name says, this URL is advertised by the server in its EHLO response.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
Visiting this URL constitutes the first of the three steps provided for setting up a forwarding agreement. The URL itself may change as needed, since it is only used once for each request. The clients posts (or ''sends'', if using SMTP transport) the essential data that defines the agreement:
* The ''recipe-ID'' as known by the client.
* The ''recipe-KEY'', an authentication code for negotiating the agreement.
* A human readable ''recipe name''.
* The ''recipient address(es)''; the target addresses at the server's. The server will transform these into the agreement's [[forwarding agreement#user-ID|user-ID]], according to its internal data structures.
* The agreement's ''category'', one of the [[forwarding agreement#category|types defined]].
* The [[policy negotiation URL]], where the server will in turn pay a visit.
* Optionally, the ''Forwarder-ID''; this is the identity of the client as known by the server, in case the client has already entered into an agreement with the same server.
* Optionally, any evidence that may be relevant. For example, the IP address and GMT date of the user's opt-in.
The tentative list above is meant to comprise all the data to fully describe the forwarder's intentions.
The recipe-ID and the recipe-KEY will be used by the server to identify itself when it will, in turn, pay a visit to the supplied policy negotiation URL. By contrast, the ''recipe name'' is what will be visible to users and should meaningfully identify the forwarding. The name may be the incoming address at the client's in the case of static forwarding, or the newsletter or mailing list name.
The client is not authenticated at this stage. If a ''Forwarder-ID'' is supplied, the server should verify that the policy negotiation URL coincides with the one already stored for that ID. If not recognized, the server must not use the supplied ''Forwarder-ID'' for making decisions, but may use it as a hint to synthesize the content of the corresponding field of the agreement.
The server should carry out any verification that it wishes. If supplied evidence includes IP addresses that the server can verify, it should do so before they possibly change and before relevant log files are obliterated. Notice that, except for evidence, no IP addresses are involved.
=== Server response ===
The server may take several paths. When the client is known and trustworthy, the server may visit the policy URL on the fly and respond to the requester process accordingly. Likewise, if the server can estimate that the agreement is likely to be granted within a few hours, it should say so. That information is needed by the client in order to decide how to queue the message at hand.
If any verification fails, the server may reject the request and let the client try again with a better request. If the request mentions an agreement that has already been established, the server should just signal that this is a spoof retrial.
If the server requires human intervention, or other lengthy process that may eventually result in negotiating a policy and granting the agreement, it should signal so. In this case the client marks the recipe as having an agreement underway, and continues to relay as usual meanwhile. It is the server responsibility to eventually visit the policy negotiation URL, possibly for the sole purpose of canceling the pending request.
Notice that it may be convenient for the server to grant an agreement to a known spammer for the sole purpose of rejecting any mail identified that way.
6d52bd64bb8b719001a6edd3f39d69b22aed7828
1499
1483
2008-12-28T14:29:12Z
Ale
1
/* Semantics */ spelling and agreement-ID
wikitext
text/x-wiki
The '''EHLO advertised URL''' receives ''forwarding requests''; that is, requests for establishing a [[forwarding agreement]]. The server of the URL is an MTA ready to grant such agreements. The client is an MTA configured with a [[forwarding recipe]], that is willing to relay related messages under an agreement. As its name says, this URL is advertised by the server in its EHLO response.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
Visiting this URL constitutes the first of the three steps provided for setting up a forwarding agreement. The URL itself may change as needed, since it is only used once for each request. The clients posts (or ''sends'', if using SMTP transport) the essential data that defines the agreement:
* The ''recipe-ID'' as known by the client.
* The ''recipe-KEY'', an authentication code for negotiating the agreement.
* A human readable ''recipe name''.
* The ''recipient address(es)''; the target addresses at the server's. The server will transform these into the agreement's [[forwarding agreement#user-ID|user-ID]], according to its internal data structures.
* The agreement's ''category'', one of the [[forwarding agreement#category|types defined]].
* The [[policy negotiation URL]], where the server will in turn pay a visit.
* Optionally, the ''forwarder-ID''; this is the identity of the client as known by the server, in case the client has already entered into an agreement with the same server.
* Optionally, any evidence that may be relevant. For example, the IP address and GMT date of the user's opt-in.
The tentative list above is meant to comprise all the data to fully describe the forwarder's intentions.
The recipe-ID and the recipe-KEY will be used by the server to identify itself when it will, in turn, pay a visit to the supplied policy negotiation URL. By contrast, the ''recipe name'' is what will be visible to users and should meaningfully identify the forwarding. The name may be the incoming address at the client's in the case of static forwarding, or the newsletter or mailing list name.
The client is not authenticated at this stage. If a ''forwarder-ID'' is supplied, the server should verify that the policy negotiation URL coincides with the one already stored for that ID. If not recognized, the server must not use the supplied ''forwarder-ID'' for making decisions, but may use it as a hint to synthesize the content of the corresponding field of the agreement.
The server should carry out any verification that it wishes. If supplied evidence includes IP addresses that the server can verify, it should do so before they possibly change and before relevant log files are obliterated. Notice that, except for evidence, no IP addresses are involved.
=== Server response ===
The server accepts the request by creating an ''agreement-ID'' and communicating it to the client. The agreement-ID is a key to all related data, including the recipient address(es). The recipe-ID may be used as a prefix to create agreement-IDs that relate to the same remote recipe.
The server may take several paths. If the server can estimate that the agreement is likely to be granted within a few hours, it should say so. That information is needed by the client in order to decide how to queue the message at hand.
If any verification fails, the server may reject the current request and let the client try again with a better one. If the request mentions an agreement that has already been established, the server should just signal that this is a spoof retrial.
If the server requires human intervention, or other lengthy process that may eventually result in negotiating a policy and granting the agreement, it should signal so. In this case the client marks the recipe as having an agreement underway, and continues to relay as usual meanwhile. It is the server responsibility to eventually visit the policy negotiation URL, possibly for the sole purpose of canceling the pending request.
Notice that it may be convenient for the server to grant an agreement to a known spammer for the sole purpose of rejecting any mail identified that way.
f7c5c6d3fe8b019a0539db6eb53e4683a0d49926
policy negotiation URL
0
21
1485
2008-12-27T19:09:26Z
Ale
1
new page
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is an MTA who granted the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two URLs provided by the handshake. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and c are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* the ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of either ''get'' or ''set'', according to the type of request that the client posts. The meaning of the data is roughly identified by one of the following keywords, given along with a short description of the content they identify.
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
For static recipes, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators.
The recipe-KEY itself can be changed by the client, for security reasons. Additional keys should be added for letting other clients to access recursively. The added keys are those returned for the ''get forwarders'' query. They should have a limited validity. (This is for allowing recursion, and it is left vague, for the time being.)
In addition, ''Forwarder-ID'', ''password'', and ''determination'' are set-only elements that must be set on the first visit. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the third [[password/FBL URL]]. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned.
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should check and verify the certificate being provided. This is done a couple of protocols upstream of SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it know to be a trustworthy MTA. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust with suitable coefficients might result in a reliable algorithm. However, that may complicate this specification more than what it's worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, e.g. in case the client comes in with an unrecognized receipt-ID. The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar minor errors.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
05f619c20ce02f7296dedd0a45d811ac1a347156
1489
1485
2008-12-28T11:17:54Z
Ale
1
/* Semantics */ rename password/FBL => completion, slightly refine recursion
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is an MTA who granted the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two URLs provided by the handshake. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and c are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* the ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''Forwarder-ID'', ''password'', and ''determination'' are set-only elements that must be set on the first visit. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the [[completion URL]]. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned.
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should check and verify the certificate being provided. This is done a couple of protocols upstream of SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it know to be a trustworthy MTA. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust with suitable coefficients might result in a reliable algorithm. However, that may complicate this specification more than what it's worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, e.g. in case the client comes in with an unrecognized receipt-ID. The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar minor errors.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
17e77bf9c081b80abaf0fc332486e8793308264b
1490
1489
2008-12-28T11:22:03Z
Ale
1
wording
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* the ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''Forwarder-ID'', ''password'', and ''determination'' are set-only elements that must be set on the first visit. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the [[completion URL]]. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned.
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should check and verify the certificate being provided. This is done a couple of protocols upstream of SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it know to be a trustworthy MTA. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust with suitable coefficients might result in a reliable algorithm. However, that may complicate this specification more than what it's worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, e.g. in case the client comes in with an unrecognized receipt-ID. The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar minor errors.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
7c778bf4abc9fe0b5713402e6a735225aad53fb2
1491
1490
2008-12-28T11:25:35Z
Ale
1
/* Semantics */ recipe-KEY is not unique
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''Forwarder-ID'', ''password'', and ''determination'' are set-only elements that must be set on the first visit. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the [[completion URL]]. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned.
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should check and verify the certificate being provided. This is done a couple of protocols upstream of SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it know to be a trustworthy MTA. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust with suitable coefficients might result in a reliable algorithm. However, that may complicate this specification more than what it's worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, e.g. in case the client comes in with an unrecognized receipt-ID. The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar minor errors.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
3338f2188564bde2e522d503bf6a35a27d6f00c6
1492
1491
2008-12-28T11:31:50Z
Ale
1
/* Credentials and cryptographic support */ wording
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''Forwarder-ID'', ''password'', and ''determination'' are set-only elements that must be set on the first visit. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the [[completion URL]]. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned.
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it know to be a trustworthy MTA. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust with suitable coefficients might result in a reliable algorithm. However, that may complicate this specification more than what it's worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, e.g. in case the client comes in with an unrecognized receipt-ID. The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar minor errors.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
618bff757de5a811d7a40b26157469009842e55a
1493
1492
2008-12-28T11:36:17Z
Ale
1
/* Credentials and cryptographic support */ typo
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''Forwarder-ID'', ''password'', and ''determination'' are set-only elements that must be set on the first visit. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the [[completion URL]]. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned.
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, e.g. in case the client comes in with an unrecognized receipt-ID. The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar minor errors.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
6e2bdebe25c496ea19490b2726a75383a9c2899c
1494
1493
2008-12-28T12:17:34Z
Ale
1
/* Server response */ expand status
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''Forwarder-ID'', ''password'', and ''determination'' are set-only elements that must be set on the first visit. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the [[completion URL]]. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned.
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, in case the client comes in with a nonexistent receipt-ID, or invalid recipient address(es). The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar errors possibly due to lack of synchronization.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
Positive responses should always include the status of the agreement. It remains ''underway'' until a Forwarder-ID/password pair has not been set. Afterward it switches to ''pending completion'' until a valid password has been set. Eventually it will be ''complete''. The server should react to a determination setting, that is the client's refusal to grant the agreement, by deleting all data, as if receiving a ''delete'' verb.
It goes without saying that, after it has acknowledged a given set of options, the server must honor those settings. Effective changes are not necessarily synchronous, but must be carried out withing a reasonable amount of hours. If this URL is being serviced by a different machine than the one that hosts the recipe, and the latter is currently down or disconnected, fulfilling the request has to be delayed. Obviously, mail must not be relayed by an MTA which is down or disconnected. Settings must take place within a few hours after that MTA gets back into operations.
A delete request, or a determination not to grant a forwarding agreement, implies to '''remove all occurrences of the relevant email address(es)''' from the forwarding recipe. For static recipes, that usually means to delete the recipe altogether. The status of the agreement switches to ''deleted'', and the server shall continue to acknowledge valid requests about it, until the delete operation is actually completed. That is to say, the recipe data and keys used to service this URL must be deleted ''after'' the recipe data that make forwarding possible. Thereafter, requests will fail.
c6729252b1055cd32a38ce7af9082b17df42d06f
1495
1494
2008-12-28T12:23:22Z
Ale
1
/* Semantics */ once, not on the first visit
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''Forwarder-ID'', ''password'', and ''determination'' are set-only elements that must be set once, before the agreement is completed. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the [[completion URL]]. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned.
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, in case the client comes in with a nonexistent receipt-ID, or invalid recipient address(es). The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar errors possibly due to lack of synchronization.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
Positive responses should always include the status of the agreement. It remains ''underway'' until a Forwarder-ID/password pair has not been set. Afterward it switches to ''pending completion'' until a valid password has been set. Eventually it will be ''complete''. The server should react to a determination setting, that is the client's refusal to grant the agreement, by deleting all data, as if receiving a ''delete'' verb.
It goes without saying that, after it has acknowledged a given set of options, the server must honor those settings. Effective changes are not necessarily synchronous, but must be carried out withing a reasonable amount of hours. If this URL is being serviced by a different machine than the one that hosts the recipe, and the latter is currently down or disconnected, fulfilling the request has to be delayed. Obviously, mail must not be relayed by an MTA which is down or disconnected. Settings must take place within a few hours after that MTA gets back into operations.
A delete request, or a determination not to grant a forwarding agreement, implies to '''remove all occurrences of the relevant email address(es)''' from the forwarding recipe. For static recipes, that usually means to delete the recipe altogether. The status of the agreement switches to ''deleted'', and the server shall continue to acknowledge valid requests about it, until the delete operation is actually completed. That is to say, the recipe data and keys used to service this URL must be deleted ''after'' the recipe data that make forwarding possible. Thereafter, requests will fail.
4c1d534156e847b60327d136ab12284589e44326
1496
1495
2008-12-28T12:27:57Z
Ale
1
/* Semantics */ completed agreements for additional KEYs
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes and completed agreements, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''Forwarder-ID'', ''password'', and ''determination'' are set-only elements that must be set once, before the agreement is completed. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the [[completion URL]]. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element may be posted to a completed agreement. It means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned (See [[#Server response|below]].)
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, in case the client comes in with a nonexistent receipt-ID, or invalid recipient address(es). The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar errors possibly due to lack of synchronization.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
Positive responses should always include the status of the agreement. It remains ''underway'' until a Forwarder-ID/password pair has not been set. Afterward it switches to ''pending completion'' until a valid password has been set. Eventually it will be ''complete''. The server should react to a determination setting, that is the client's refusal to grant the agreement, by deleting all data, as if receiving a ''delete'' verb.
It goes without saying that, after it has acknowledged a given set of options, the server must honor those settings. Effective changes are not necessarily synchronous, but must be carried out withing a reasonable amount of hours. If this URL is being serviced by a different machine than the one that hosts the recipe, and the latter is currently down or disconnected, fulfilling the request has to be delayed. Obviously, mail must not be relayed by an MTA which is down or disconnected. Settings must take place within a few hours after that MTA gets back into operations.
A delete request, or a determination not to grant a forwarding agreement, implies to '''remove all occurrences of the relevant email address(es)''' from the forwarding recipe. For static recipes, that usually means to delete the recipe altogether. The status of the agreement switches to ''deleted'', and the server shall continue to acknowledge valid requests about it, until the delete operation is actually completed. That is to say, the recipe data and keys used to service this URL must be deleted ''after'' the recipe data that make forwarding possible. Thereafter, requests will fail.
fe250e7bc17c72003e146e55a8a6a57621752077
1498
1496
2008-12-28T13:54:51Z
Ale
1
/* Semantics */ completion URL can be changed here too
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''recipient address(es)''.
Notice that the last element(s) may refer to either incoming or target addresses; this specification is not yet final in this respect.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes and completed agreements, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''Forwarder-ID'', ''password'', ''[[completion URL]]'' and ''determination'' are set-only elements that must be set once, before the agreement is completed. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the completion URL. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''Forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element may be posted to a completed agreement. It means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned (See [[#Server response|below]].)
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts, but the ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys.
An MTA who has been honoring a forwarding agreement for some time, might ask its granters to certify that. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, in case the client comes in with a nonexistent receipt-ID, or invalid recipient address(es). The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar errors possibly due to lack of synchronization.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
Positive responses should always include the status of the agreement. It remains ''underway'' until a Forwarder-ID/password pair and completion URL have not been set. Afterward it switches to ''pending completion'' until a valid password has been set by visiting the URL thus provided. Eventually it will be ''complete''. The server should react to a determination setting, that is the client's refusal to grant the agreement, by deleting all data, as if receiving a ''delete'' verb.
It goes without saying that, after it has acknowledged a given set of options, the server must honor those settings. Effective changes are not necessarily synchronous, but must be carried out withing a reasonable amount of hours. If this URL is being serviced by a different machine than the one that hosts the recipe, and the latter is currently down or disconnected, fulfilling the request has to be delayed. Obviously, mail must not be relayed by an MTA which is down or disconnected. Settings must take place within a few hours after that MTA gets back into operations.
A delete request, or a determination not to grant a forwarding agreement, implies to '''remove all occurrences of the relevant email address(es)''' from the forwarding recipe. For static recipes, that usually means to delete the recipe altogether. The status of the agreement switches to ''deleted'', and the server shall continue to acknowledge valid requests about it, until the delete operation is actually completed. That is to say, the recipe data and keys used to service this URL must be deleted ''after'' the recipe data that make forwarding possible. Thereafter, requests will fail.
f9cbea018c628ac3500dbbbdd5700398ef63d51e
1500
1498
2008-12-28T14:49:07Z
Ale
1
/* Semantics */ agreement-ID
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes as well as database design.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''agreement-ID''.
The recipe-ID and the agreement-ID unambiguously identify the relevant (target) recipient address(es). The recipe-KEY authenticates the client.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes and completed agreements, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''forwarder-ID'', ''password'', ''[[completion URL]]'' and ''determination'' are set-only elements that must be set once, before the agreement is completed. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the completion URL. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element may be posted to a completed agreement. It means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned (See [[#Server response|below]].)
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts and tools. However, a ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who has been honoring a forwarding agreement for some time, might ask its peer to certify that. The receiving MTA should have collected enough data to conclude that a forwarder is not a spammer, before signing.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, in case the client comes in with a nonexistent receipt-ID, or invalid recipient address(es). The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar errors possibly due to lack of synchronization.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
Positive responses should always include the status of the agreement. It remains ''underway'' until a forwarder-ID/password pair and completion URL have not been set. Afterward it switches to ''pending completion'' until a valid password has been set by visiting the URL thus provided. Eventually it will be ''complete''. The server should react to a determination setting, that is the client's refusal to grant the agreement, by deleting all data, as if receiving a ''delete'' verb.
It goes without saying that, after it has acknowledged a given set of options, the server must honor those settings. Effective changes are not necessarily synchronous, but must be carried out withing a reasonable amount of hours. If this URL is being serviced by a different machine than the one that hosts the recipe, and the latter is currently down or disconnected, fulfilling the request has to be delayed. Obviously, mail must not be relayed by an MTA which is down or disconnected. Settings must take place within a few hours after that MTA gets back into operations.
A delete request, or a determination not to grant a forwarding agreement, implies to '''remove all occurrences of the relevant email address(es)''' from the forwarding recipe. For static recipes, that usually means to delete the recipe altogether. The status of the agreement switches to ''deleted'', and the server shall continue to acknowledge valid requests about it, until the delete operation is actually completed. That is to say, the recipe data and keys used to service this URL must be deleted ''after'' the recipe data that make forwarding possible. Thereafter, requests will fail.
164695aa66e066c0ab5f19bb539e2bf5e6585a76
1501
1500
2008-12-28T15:44:48Z
Ale
1
/* Server response */ delete the mailbox!
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes as well as database design.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''agreement-ID''.
The recipe-ID and the agreement-ID unambiguously identify the relevant (target) recipient address(es). The recipe-KEY authenticates the client.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes and completed agreements, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''forwarder-ID'', ''password'', ''[[completion URL]]'' and ''determination'' are set-only elements that must be set once, before the agreement is completed. The server may refuse to change its ID afterward. The password is already expired when it is being set, which forces the use of the completion URL. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''forwarder-ID'' and ''password'': it is a human readable text explaining why.
Finally, besides ''get'' and ''set'', a ''delete'' element may be posted to a completed agreement. It means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned (See [[#Server response|below]].)
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts and tools. However, a ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who has been honoring a forwarding agreement for some time, might ask its peer to certify that. The receiving MTA should have collected enough data to conclude that a forwarder is not a spammer, before signing.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, in case the client comes in with a nonexistent receipt-ID, or invalid recipient address(es). The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar errors possibly due to lack of synchronization.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
Positive responses should always include the status of the agreement. It remains ''underway'' until a forwarder-ID/password pair and completion URL have not been set. Afterward it switches to ''pending completion'' until a valid password has been set by visiting the URL thus provided. Eventually it will be ''complete''. The server should react to a determination setting, that is the client's refusal to grant the agreement, by deleting all data, as if receiving a ''delete'' verb.
It goes without saying that, after it has acknowledged a given set of options, the server must honor those settings. Effective changes are not necessarily synchronous, but must be carried out withing a reasonable amount of hours. If this URL is being serviced by a different machine than the one that hosts the recipe, and the latter is currently down or disconnected, fulfilling the request has to be delayed. Obviously, mail must not be relayed by an MTA which is down or disconnected. Settings must take place within a few hours after that MTA gets back into operations.
A delete request, or a determination not to grant a forwarding agreement, implies to '''remove all occurrences of the relevant email address(es)''' from the forwarding recipe. For static recipes, that means to delete the recipe ''and'' the mailbox; users might just disable forwarding otherwise. The status of the agreement switches to ''deleted'', and the server shall continue to acknowledge valid requests about it, until the delete operation is actually completed. That is to say, the recipe data and keys used to service this URL must be deleted ''after'' the recipe data that make forwarding possible. Thereafter, requests will fail.
3f0fa7ea1b0dcafec5e9d02101a8f34b0b96e1c3
1504
1501
2008-12-28T17:02:18Z
Ale
1
/* Semantics */ corrections
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes as well as database design.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''agreement-ID''.
The recipe-ID and the agreement-ID unambiguously identify the relevant (target) recipient address(es). The recipe-KEY authenticates the client.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes and completed agreements, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''forwarder-ID'', ''password'', ''[[completion URL]]'' and ''determination'' are set-only elements that must be set once, before the agreement is completed. The server may refuse to change its forwarder-ID or the completion URL afterward. The password is already expired when it is being set, which forces the use of the completion URL. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''forwarder-ID'', ''password'', and ''completion URL'': it is a human readable text explaining why the client acted the way it did.
Finally, besides ''get'' and ''set'', a ''delete'' element may be posted to a completed agreement. It means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned (See [[#Server response|below]].)
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts and tools. However, a ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who has been honoring a forwarding agreement for some time, might ask its peer to certify that. The receiving MTA should have collected enough data to conclude that a forwarder is not a spammer, before signing.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, in case the client comes in with a nonexistent receipt-ID, or invalid recipient address(es). The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar errors possibly due to lack of synchronization.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
Positive responses should always include the status of the agreement. It remains ''underway'' until a forwarder-ID/password pair and completion URL have not been set. Afterward it switches to ''pending completion'' until a valid password has been set by visiting the URL thus provided. Eventually it will be ''complete''. The server should react to a determination setting, that is the client's refusal to grant the agreement, by deleting all data, as if receiving a ''delete'' verb.
It goes without saying that, after it has acknowledged a given set of options, the server must honor those settings. Effective changes are not necessarily synchronous, but must be carried out withing a reasonable amount of hours. If this URL is being serviced by a different machine than the one that hosts the recipe, and the latter is currently down or disconnected, fulfilling the request has to be delayed. Obviously, mail must not be relayed by an MTA which is down or disconnected. Settings must take place within a few hours after that MTA gets back into operations.
A delete request, or a determination not to grant a forwarding agreement, implies to '''remove all occurrences of the relevant email address(es)''' from the forwarding recipe. For static recipes, that means to delete the recipe ''and'' the mailbox; users might just disable forwarding otherwise. The status of the agreement switches to ''deleted'', and the server shall continue to acknowledge valid requests about it, until the delete operation is actually completed. That is to say, the recipe data and keys used to service this URL must be deleted ''after'' the recipe data that make forwarding possible. Thereafter, requests will fail.
a3f2b44f67af8fcfd38a13367f2914a82bf662a5
completion URL
0
22
1502
2008-12-28T16:14:38Z
Ale
1
new page
wikitext
text/x-wiki
The '''completion URL''' formally completes a [[forwarding agreement]] handshake by setting a valid password; in addition, it serves those facets of the negotiation that imply setting parameters on the server, e.g. the Feedback Loop address, and agreement termination. The server of the URL is an MTA that has negotiated an agreement. The client is an MTA configured with the [[forwarding recipe]] that the agreement is linked with.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL allows the client to set various types of data. It may coincide or not with the [[EHLO advertised URL]], depending on the server convenience. If it coincides, it must obviously accept forwarding requests, but they are not considered here.
Every request to this URL must post the elements that authenticate the client and identify the agreement:
* ''Forwarder-ID'',
* a valid (although possibly expired) ''password'', and
* the ''agreement-ID''.
A request may contain one or more of the following data.
==== password ====
A password may be expired as far as SMTP Authentication is concerned, but still valid for setting a new password using this URL. Changing the password should be the first client concern in this case. The client may decide at any time that the password should be changed, after receiving a 535 ''Authentication credentials invalid'' response from the relevant SMTP server, or after its password has been reset at its policy negotiation URL.
The server may reject weak passwords.
==== Feedback Loop email address ====
The server must accept this address, and forward there any report associated with mail sent under the relevant forwarding agreement. The server should have an automated reporting mechanism; if it doesn't, this address can still be used to send complaints manually, in the correct format. The ''Abuse Feedback Reporting Format'' (ARF)[http://tools.ietf.org/html/draft-shafranovich-feedback-report-05] is assumed.
The server may reject invalid email addresses.
==== policy negotiation URL ====
The policy negotiation URL is used to recognize forwarders in case of new forwarding requests, thus it should not change often. Changing it for the given agreement may result in changing it for all agreements stipulated with the same forwarder-ID, according to the database design at the server. If not, the client should change the URL also for all existing agreements ''before'' requiring new ones. If not, its requests for new agreements may be rejected or generate a different forwarder-ID.
The server may reject invalid URLs.
==== agreement termination ====
Mailing lists can be canceled, and static recipes can be deleted, on the client's own initiative. When that happens, it should be notified using this URL. The notification should be done ''after'' the deletion. The server may verify the deletion at the negotiation URL. The client may give this notification after the server issued a ''delete'' command at the negotiation URL. If the client issues a deletion on its own initiative, it is its responsibility to also terminate any relevant forwarding chain upstream.
=== Server response ===
The server must fail in case of bad identification or authentication.
Positive server responses must include a list of the accepted settings. In case of URL changes, it must specify if the URL has been changed for more than one agreement.
Successfully setting a password for the first time concludes the handshake, and the forwarding agreement is considered undertaken.
e99b7b5c4680a1952f1a4babba63b4ac461d12c3
1503
1502
2008-12-28T16:57:55Z
Ale
1
/* Semantics */ the password is related to the agreement-ID
wikitext
text/x-wiki
The '''completion URL''' formally completes a [[forwarding agreement]] handshake by setting a valid password; in addition, it serves those facets of the negotiation that imply setting parameters on the server, e.g. the Feedback Loop address, and agreement termination. The server of the URL is an MTA that has negotiated an agreement. The client is an MTA configured with the [[forwarding recipe]] that the agreement is linked with.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server are also respectively named ''Transmitter'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL allows the client to set various types of data. It may coincide or not with the [[EHLO advertised URL]], depending on the server convenience. If it coincides, it must obviously accept forwarding requests, but they are not considered here.
Every request to this URL must post the elements that authenticate the client and identify the agreement:
* ''forwarder-ID'',
* the ''agreement-ID'', and
* a valid (although possibly expired) ''password''.
A request may contain one or more of the following data.
==== password ====
A password may be expired as far as SMTP Authentication is concerned, but still valid for setting a new password using this URL. Changing the password should be the first client concern in this case. The client may decide at any time that the password should be changed, after receiving a 535 ''Authentication credentials invalid'' response from the relevant SMTP server, or after its password has been reset at its policy negotiation URL.
Notice that a forwarder may have multiple agreements with the server. Each agreement has its own password.
The server may reject weak passwords.
==== Feedback Loop email address ====
The server must accept this address, and forward there any report associated with mail sent under the relevant forwarding agreement. The server should have an automated reporting mechanism; if it doesn't, this address can still be used to send complaints manually, in the correct format. The ''Abuse Feedback Reporting Format'' (ARF)[http://tools.ietf.org/html/draft-shafranovich-feedback-report-05] is assumed.
The server may reject invalid email addresses.
==== policy negotiation URL ====
The policy negotiation URL is used to recognize forwarders in case of new forwarding requests, thus it should not change. However, organizational changes may require that host names and/or locations be changed. Changing it for the given agreement may result in changing it for all agreements stipulated with the same forwarder-ID, according to the database design at the server. If not, the client should change the URL also for all existing agreements ''before'' requiring new ones. If not, its requests for new agreements may be rejected or generate a different forwarder-ID.
Forwarding agreements are not transferable, and the forwarder-ID cannot be changed. Hence, changing the negotiation URL is not meant for that. In case a whole line of business is merged or transferred, changing the URL may serve to cope with the relevant organizational changes.
The server may refuse to change the URL. In that case, a forwarder should terminate existing agreements and enter new ones.
==== agreement termination ====
Mailing lists can be canceled, and static recipes can be deleted, on the client's own initiative. When that happens, it should be notified using this URL. The notification should be done ''after'' the deletion. The server may verify the deletion at the negotiation URL. The client may give this notification after the server issued a ''delete'' command at the negotiation URL. If the client issues a deletion on its own initiative, it is its responsibility to also terminate any relevant forwarding chain upstream.
=== Server response ===
The server must fail in case of bad identification or authentication.
Positive server responses must include a list of the accepted settings. In case of URL changes, it must specify if the URL has been changed for more than one agreement.
Successfully setting a password for the first time concludes the handshake, and the forwarding agreement is considered undertaken.
20a6770ee3c0a606522693aada1c89e0a0297174
forwarding agreement
0
11
1505
1497
2008-12-28T17:33:47Z
Ale
1
minor adjustments
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and a password, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for SMTP Authentication. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''. The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. A tentative list of categories is as follows:
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
Sometimes static recipes can be edited using web forms or other remote mechanisms. The key difference is that static recipes allow a single user with enough permissions to edit multiple addresses at once, e.g. by providing a comma separated list. Dynamic recipes allow to independently add/delete single addresses without even letting the relevant user know whether there are more addresses on the list.
Mailing lists have a time-honored mechanism to subscribe/unsubscribe by email, web form management has been added on top of that, and the software designed to manage forwarding agreements may act compliantly. Any list that is not, strictly speaking, a ''mailing list'', is a newsletter.
The category is not supposed to change during an agreement's life-cycle, thus some of the above distinctions may be dropped.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the completion URL and set a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP request/response pages under HTTPS transport. An advantage of SOAP is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].)
We define the following:
* the [[EHLO advertised URL]],
* the [[policy negotiation URL]] at the forwarder's, and
* the [[completion URL]].
The first and last ones are served by the target MTA.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for each recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender's must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail addresses that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. Alternatively, static recipes may be disabled causing the relevant server to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SASL mechanism being used with SMTP Authentication, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
cd8bbcc9327f184afb276a397b993388fea35295
1514
1505
2009-01-16T18:15:00Z
Ale
1
/* URLs */ add Lisa's link on SOAP
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and a password, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for SMTP Authentication. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''. The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. A tentative list of categories is as follows:
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
Sometimes static recipes can be edited using web forms or other remote mechanisms. The key difference is that static recipes allow a single user with enough permissions to edit multiple addresses at once, e.g. by providing a comma separated list. Dynamic recipes allow to independently add/delete single addresses without even letting the relevant user know whether there are more addresses on the list.
Mailing lists have a time-honored mechanism to subscribe/unsubscribe by email, web form management has been added on top of that, and the software designed to manage forwarding agreements may act compliantly. Any list that is not, strictly speaking, a ''mailing list'', is a newsletter.
The category is not supposed to change during an agreement's life-cycle, thus some of the above distinctions may be dropped.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the completion URL and set a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP request/response pages under HTTPS transport. An advantage of SOAP is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. Lisa Dusseault does not agree, though[http://nih.blogspot.com/2008/09/ive-been-asked-lot-about-use-of-soap-in.html]. HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].)
We define the following:
* the [[EHLO advertised URL]],
* the [[policy negotiation URL]] at the forwarder's, and
* the [[completion URL]].
The first and last ones are served by the target MTA.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for each recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender's must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail addresses that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. Alternatively, static recipes may be disabled causing the relevant server to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SASL mechanism being used with SMTP Authentication, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
25b1f5e2ddc5b47ec1573141d4341f0a7025c79e
1525
1514
2009-03-01T11:16:30Z
Ale
1
/* URLs */ Remove Lisa's surname, since it's not in her blog either
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and a password, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for SMTP Authentication. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''. The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. A tentative list of categories is as follows:
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
Sometimes static recipes can be edited using web forms or other remote mechanisms. The key difference is that static recipes allow a single user with enough permissions to edit multiple addresses at once, e.g. by providing a comma separated list. Dynamic recipes allow to independently add/delete single addresses without even letting the relevant user know whether there are more addresses on the list.
Mailing lists have a time-honored mechanism to subscribe/unsubscribe by email, web form management has been added on top of that, and the software designed to manage forwarding agreements may act compliantly. Any list that is not, strictly speaking, a ''mailing list'', is a newsletter.
The category is not supposed to change during an agreement's life-cycle, thus some of the above distinctions may be dropped.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the completion URL and set a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP request/response pages under HTTPS transport. An advantage of SOAP is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. Lisa does not agree, though[http://nih.blogspot.com/2008/09/ive-been-asked-lot-about-use-of-soap-in.html]. HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].)
We define the following:
* the [[EHLO advertised URL]],
* the [[policy negotiation URL]] at the forwarder's, and
* the [[completion URL]].
The first and last ones are served by the target MTA.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for each recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender's must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail addresses that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. Alternatively, static recipes may be disabled causing the relevant server to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SASL mechanism being used with SMTP Authentication, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
60dda407fbf821d107887be7837686aadd68b769
1532
1525
2009-05-29T14:31:28Z
Ale
1
/* URLs */ Add REST
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and a password, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for SMTP Authentication. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''. The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. A tentative list of categories is as follows:
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
Sometimes static recipes can be edited using web forms or other remote mechanisms. The key difference is that static recipes allow a single user with enough permissions to edit multiple addresses at once, e.g. by providing a comma separated list. Dynamic recipes allow to independently add/delete single addresses without even letting the relevant user know whether there are more addresses on the list.
Mailing lists have a time-honored mechanism to subscribe/unsubscribe by email, web form management has been added on top of that, and the software designed to manage forwarding agreements may act compliantly. Any list that is not, strictly speaking, a ''mailing list'', is a newsletter.
The category is not supposed to change during an agreement's life-cycle, thus some of the above distinctions may be dropped.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the completion URL and set a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP or REST request/response pages under HTTPS transport. An advantage of using an existing framework is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. Lisa does not like SOAP[http://nih.blogspot.com/2008/09/ive-been-asked-lot-about-use-of-soap-in.html], REST looks simpler[http://blog.feedly.com/2009/03/03/jsonrest-vs-xmlsoap/]. (See also [http://www.ietf.org/proceedings/07dec/slides/xmltut-1.pdf Using XML in Internet Protocols].) HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].) SOAP has further security options and WS-* features, but for the time being they don't seem necessary.
We define the following URLs:
* the [[EHLO advertised URL]],
* the [[policy negotiation URL]] at the forwarder's, and
* the [[completion URL]].
The first and last ones are served by the target MTA.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for each recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender's must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail addresses that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. Alternatively, static recipes may be disabled causing the relevant server to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SASL mechanism being used with SMTP Authentication, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
9ceed7d6ec45c45ac4f61d70556efe881bff0357
1533
1532
2009-10-08T13:38:50Z
Test
3
/* category */
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and a password, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for SMTP Authentication. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''. The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. A tentative list of categories is as follows:
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter,
* [http://www.research-service.com/custom-essay-writing.html custom essay]
* backup MX.
Sometimes static recipes can be edited using web forms or other remote mechanisms. The key difference is that static recipes allow a single user with enough permissions to edit multiple addresses at once, e.g. by providing a comma separated list. Dynamic recipes allow to independently add/delete single addresses without even letting the relevant user know whether there are more addresses on the list.
Mailing lists have a time-honored mechanism to subscribe/unsubscribe by email, web form management has been added on top of that, and the software designed to manage forwarding agreements may act compliantly. Any list that is not, strictly speaking, a ''mailing list'', is a newsletter.
The category is not supposed to change during an agreement's life-cycle, thus some of the above distinctions may be dropped.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the completion URL and set a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP or REST request/response pages under HTTPS transport. An advantage of using an existing framework is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. Lisa does not like SOAP[http://nih.blogspot.com/2008/09/ive-been-asked-lot-about-use-of-soap-in.html], REST looks simpler[http://blog.feedly.com/2009/03/03/jsonrest-vs-xmlsoap/]. (See also [http://www.ietf.org/proceedings/07dec/slides/xmltut-1.pdf Using XML in Internet Protocols].) HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].) SOAP has further security options and WS-* features, but for the time being they don't seem necessary.
We define the following URLs:
* the [[EHLO advertised URL]],
* the [[policy negotiation URL]] at the forwarder's, and
* the [[completion URL]].
The first and last ones are served by the target MTA.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for each recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender's must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail addresses that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. Alternatively, static recipes may be disabled causing the relevant server to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SASL mechanism being used with SMTP Authentication, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
7a2b70facb4255c5192d691cd0fb86490ba8ee79
1534
1533
2009-10-08T16:03:31Z
Ale
1
Undo revision 1533 by [[Special:Contributions/JohnSteves|JohnSteves]] ([[User talk:JohnSteves|Talk]])
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and a password, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for SMTP Authentication. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''. The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. A tentative list of categories is as follows:
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter, and
* backup MX.
Sometimes static recipes can be edited using web forms or other remote mechanisms. The key difference is that static recipes allow a single user with enough permissions to edit multiple addresses at once, e.g. by providing a comma separated list. Dynamic recipes allow to independently add/delete single addresses without even letting the relevant user know whether there are more addresses on the list.
Mailing lists have a time-honored mechanism to subscribe/unsubscribe by email, web form management has been added on top of that, and the software designed to manage forwarding agreements may act compliantly. Any list that is not, strictly speaking, a ''mailing list'', is a newsletter.
The category is not supposed to change during an agreement's life-cycle, thus some of the above distinctions may be dropped.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the completion URL and set a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP or REST request/response pages under HTTPS transport. An advantage of using an existing framework is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. Lisa does not like SOAP[http://nih.blogspot.com/2008/09/ive-been-asked-lot-about-use-of-soap-in.html], REST looks simpler[http://blog.feedly.com/2009/03/03/jsonrest-vs-xmlsoap/]. (See also [http://www.ietf.org/proceedings/07dec/slides/xmltut-1.pdf Using XML in Internet Protocols].) HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].) SOAP has further security options and WS-* features, but for the time being they don't seem necessary.
We define the following URLs:
* the [[EHLO advertised URL]],
* the [[policy negotiation URL]] at the forwarder's, and
* the [[completion URL]].
The first and last ones are served by the target MTA.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for each recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender's must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail addresses that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. Alternatively, static recipes may be disabled causing the relevant server to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SASL mechanism being used with SMTP Authentication, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
9ceed7d6ec45c45ac4f61d70556efe881bff0357
1552
1534
2010-07-21T09:59:02Z
Ale
1
Reverted edits by [[Special:Contributions/Ale|Ale]] ([[User talk:Ale|Talk]]) to last revision by [[User:JohnSteves|JohnSteves]]
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and a password, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for SMTP Authentication. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''. The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. A tentative list of categories is as follows:
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter,
* [http://www.research-service.com/custom-essay-writing.html custom essay]
* backup MX.
Sometimes static recipes can be edited using web forms or other remote mechanisms. The key difference is that static recipes allow a single user with enough permissions to edit multiple addresses at once, e.g. by providing a comma separated list. Dynamic recipes allow to independently add/delete single addresses without even letting the relevant user know whether there are more addresses on the list.
Mailing lists have a time-honored mechanism to subscribe/unsubscribe by email, web form management has been added on top of that, and the software designed to manage forwarding agreements may act compliantly. Any list that is not, strictly speaking, a ''mailing list'', is a newsletter.
The category is not supposed to change during an agreement's life-cycle, thus some of the above distinctions may be dropped.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the completion URL and set a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP or REST request/response pages under HTTPS transport. An advantage of using an existing framework is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. Lisa does not like SOAP[http://nih.blogspot.com/2008/09/ive-been-asked-lot-about-use-of-soap-in.html], REST looks simpler[http://blog.feedly.com/2009/03/03/jsonrest-vs-xmlsoap/]. (See also [http://www.ietf.org/proceedings/07dec/slides/xmltut-1.pdf Using XML in Internet Protocols].) HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].) SOAP has further security options and WS-* features, but for the time being they don't seem necessary.
We define the following URLs:
* the [[EHLO advertised URL]],
* the [[policy negotiation URL]] at the forwarder's, and
* the [[completion URL]].
The first and last ones are served by the target MTA.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for each recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender's must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail addresses that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. Alternatively, static recipes may be disabled causing the relevant server to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SASL mechanism being used with SMTP Authentication, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
7a2b70facb4255c5192d691cd0fb86490ba8ee79
Talk:EHLO advertised URL
1
23
1506
2008-12-29T00:52:58Z
Macquigg
2
Corrected terminology
wikitext
text/x-wiki
Original Text:
: Client and server are also respectively named Transmitter and MDA according to MHS[2] terminology.
|--- Sender's Network ---| |-------- Recipient's Network ---------|
/
Author ==> MSA/Transmitter --> / --> Receiver/Forwarder ~~> MDA ==> Recipient
/
Border
The client is a Forwarder, not a Transmitter. A Transmitter has no relationship with a Receiver, whereas a Forwarder has an indirect relationship with an MDA, due to the direct relationship both have with the Recipient. This is important, because we are counting on that relationship to establish the forwarding agreement. Without this special relationship, you have an entirely different problem - the general problem of establishing trust between unrelated parties.
38bd222e660e63c787baba701304b2281c8aef73
1507
1506
2008-12-29T06:05:38Z
Macquigg
2
wikitext
text/x-wiki
=== Terminology Correction ===
Original Text:
: Client and server are also respectively named Transmitter and MDA according to MHS[2] terminology.
Model of system we are discussing:
|--- Sender's Network ---| |-------- Recipient's Network ---------|
/
Author ==> MSA/Transmitter --> / --> Receiver/Forwarder ~~> MDA ==> Recipient
/
Border
The client is a Forwarder, not a Transmitter. A Transmitter has no relationship with a Receiver, whereas a Forwarder has an indirect relationship with an MDA, due to the direct relationship both have with the Recipient. This is important, because we are counting on that relationship to establish the forwarding agreement. Without this special relationship, you have an entirely different problem - the general problem of establishing trust between unrelated parties.
Establishing trust in a forwarding agreement requires only one simple check. Ask the Recipient if the agreement is OK.
This same misuse of the term Transmitter should be fixed on other pages as well.
0e8068dd6adca4893c50fbadf556a66327a09228
1512
1507
2008-12-29T10:43:18Z
Ale
1
Terms, Ask the Recipient
wikitext
text/x-wiki
=== Terminology Correction ===
Original Text:
: Client and server are also respectively named Transmitter and MDA according to MHS[2] terminology.
Model of system we are discussing:
|--- Sender's Network ---| |-------- Recipient's Network ---------|
/
Author ==> MSA/Transmitter --> / --> Receiver/Forwarder ~~> MDA ==> Recipient
/
Border
The client is a Forwarder, not a Transmitter. A Transmitter has no relationship with a Receiver, whereas a Forwarder has an indirect relationship with an MDA, due to the direct relationship both have with the Recipient. This is important, because we are counting on that relationship to establish the forwarding agreement. Without this special relationship, you have an entirely different problem - the general problem of establishing trust between unrelated parties.
Establishing trust in a forwarding agreement requires only one simple check. Ask the Recipient if the agreement is OK.
This same misuse of the term Transmitter should be fixed on other pages as well.
==== Terms ====
Thank you for spotting this. ''Forwarder'' is a much more natural term in this case, and it obviously is on the receiver side of the [[boundary]]. However, for this content page in particular, the client is not ''yet'' a Forwarder. I resorted to ''candidate Forwarder''.
==== Ask the Recipient ====
Asking the Recipient is going to be slow, as it involves human intervention. In that case, the message at hand will be relayed as usual.
For regular legit cases, the user already opted in and possibly acknowledged a mail address check. If we could go so far as to intercept double checks, then there is no reason to ask again, and we could grant access right away. However, that complicates things further. For ''known'' forwarders, the MDA should just grant the agreement.
On the other hand, an ESP should provide a web page for setting email options, and the Recipient can go there to delete the agreement, possibly declaring that it was not legitimate. (The latter should affect the forwarder's reputation.)
0257641014611fba0fe63963b0a88f244b88c4a7
1513
1512
2008-12-30T20:27:20Z
Macquigg
2
wikitext
text/x-wiki
=== Terminology Correction ===
Original Text:
: Client and server are also respectively named Transmitter and MDA according to MHS[2] terminology.
Model of system we are discussing:
|--- Sender's Network ---| |-------- Recipient's Network ---------|
/
Author ==> MSA/Transmitter --> / --> Receiver/Forwarder ~~> MDA ==> Recipient
/
Border
The client is a Forwarder, not a Transmitter. A Transmitter has no relationship with a Receiver, whereas a Forwarder has an indirect relationship with an MDA, due to the direct relationship both have with the Recipient. This is important, because we are counting on that relationship to establish the forwarding agreement. Without this special relationship, you have an entirely different problem - the general problem of establishing trust between unrelated parties.
Establishing trust in a forwarding agreement requires only one simple check. Ask the Recipient if the agreement is OK.
This same misuse of the term Transmitter should be fixed on other pages as well.
--[[User:Macquigg|Macquigg]] 20:27, 30 December 2008 (GMT)
==== Terms ====
Thank you for spotting this. ''Forwarder'' is a much more natural term in this case, and it obviously is on the receiver side of the [[boundary]]. However, for this content page in particular, the client is not ''yet'' a Forwarder. I resorted to ''candidate Forwarder''.
:We need to distinguish between "boundary" and Border. Boundary can mean any line between two Actors (ADMDs). The Border is a special boundary, the only one between unrelated Actors.--[[User:Macquigg|Macquigg]] 20:27, 30 December 2008 (GMT)
==== Ask the Recipient ====
Asking the Recipient is going to be slow, as it involves human intervention. In that case, the message at hand will be relayed as usual.
: I wouldn't worry about the delay. Setting up forwarding for most recipients is a very rare event, and it should be done carefully. Getting confirmation from the MDA, as well as precise feedback on exactly how the forwarding is being set up, is important for the recipient. The confirmation message can also include instructions and warnings about forwarded spam, etc.
:The fundamental purpose of having a forwarding relationship is to allow mail from an otherwise untrusted source to be whitelisted for one recipient. Google.com may be sending spam to the entire planet, but if I have an account there and I want my mail forwarded to my mailbox at Yahoo, I will tolerate that spam (or complain to Google). Other Yahoo customers will not tolerate Google's spam.
:We may have a fundamental misunderstanding on what Forwarding is all about. To me it means a relationship set up by the Recipient. This can be done without any involvement by the Forwarder or MDA, but it may help to have that involvement when the Recipient is not properly trained (almost always). Keeping the Recipient "in the loop" is important. I would go even further than an initial confirmation message. I would send a reminder once per month.--[[User:Macquigg|Macquigg]] 20:27, 30 December 2008 (GMT)
For regular legit cases, the user already opted in and possibly acknowledged a mail address check.
: I must be missing something. Aren't we talking about setting up forwarding? Once a forwarding relationship has been established, it should not be necessary to do anything special, other than whitelist the mail from this forwarder to that recipient. --[[User:Macquigg|Macquigg]] 20:27, 30 December 2008 (GMT)
If we could go so far as to intercept double checks, then there is no reason to ask again, and we could grant access right away. However, that complicates things further. For ''known'' forwarders, the MDA should just grant the agreement.
:I don't like having a separate mechanism for "known" good Forwarders. If we had such a mechanism, it should allow whitelisting *all* mail from that Forwarder. In other words, there is no need to distinguish a Forwarder from a Transmitter. The responsible domain is either trusted or not, and its mail is either whitelisted or spam filtered.--[[User:Macquigg|Macquigg]] 20:27, 30 December 2008 (GMT)
On the other hand, an ESP should provide a web page for setting email options, and the Recipient can go there to delete the agreement, possibly declaring that it was not legitimate. (The latter should affect the forwarder's reputation.)
235f56008a09d6a3903a722e580aa6a3dd1c2989
EHLO advertised URL
0
20
1508
1499
2008-12-29T10:02:34Z
Ale
1
fix Transmitter => Forwarder
wikitext
text/x-wiki
The '''EHLO advertised URL''' receives ''forwarding requests''; that is, requests for establishing a [[forwarding agreement]]. The server of the URL is an MTA ready to grant such agreements. The client is an MTA configured with a [[forwarding recipe]], that is willing to relay related messages under an agreement. As its name says, this URL is advertised by the server in its EHLO response.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server may be respectively called a ''candidate Forwarder'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
Visiting this URL constitutes the first of the three steps provided for setting up a forwarding agreement. The URL itself may change as needed, since it is only used once for each request. The clients posts (or ''sends'', if using SMTP transport) the essential data that defines the agreement:
* The ''recipe-ID'' as known by the client.
* The ''recipe-KEY'', an authentication code for negotiating the agreement.
* A human readable ''recipe name''.
* The ''recipient address(es)''; the target addresses at the server's. The server will transform these into the agreement's [[forwarding agreement#user-ID|user-ID]], according to its internal data structures.
* The agreement's ''category'', one of the [[forwarding agreement#category|types defined]].
* The [[policy negotiation URL]], where the server will in turn pay a visit.
* Optionally, the ''forwarder-ID''; this is the identity of the client as known by the server, in case the client has already entered into an agreement with the same server.
* Optionally, any evidence that may be relevant. For example, the IP address and GMT date of the user's opt-in.
The tentative list above is meant to comprise all the data to fully describe the forwarder's intentions.
The recipe-ID and the recipe-KEY will be used by the server to identify itself when it will, in turn, pay a visit to the supplied policy negotiation URL. By contrast, the ''recipe name'' is what will be visible to users and should meaningfully identify the forwarding. The name may be the incoming address at the client's in the case of static forwarding, or the newsletter or mailing list name.
The client is not authenticated at this stage. If a ''forwarder-ID'' is supplied, the server should verify that the policy negotiation URL coincides with the one already stored for that ID. If not recognized, the server must not use the supplied ''forwarder-ID'' for making decisions, but may use it as a hint to synthesize the content of the corresponding field of the agreement.
The server should carry out any verification that it wishes. If supplied evidence includes IP addresses that the server can verify, it should do so before they possibly change and before relevant log files are obliterated. Notice that, except for evidence, no IP addresses are involved.
=== Server response ===
The server accepts the request by creating an ''agreement-ID'' and communicating it to the client. The agreement-ID is a key to all related data, including the recipient address(es). The recipe-ID may be used as a prefix to create agreement-IDs that relate to the same remote recipe.
The server may take several paths. If the server can estimate that the agreement is likely to be granted within a few hours, it should say so. That information is needed by the client in order to decide how to queue the message at hand.
If any verification fails, the server may reject the current request and let the client try again with a better one. If the request mentions an agreement that has already been established, the server should just signal that this is a spoof retrial.
If the server requires human intervention, or other lengthy process that may eventually result in negotiating a policy and granting the agreement, it should signal so. In this case the client marks the recipe as having an agreement underway, and continues to relay as usual meanwhile. It is the server responsibility to eventually visit the policy negotiation URL, possibly for the sole purpose of canceling the pending request.
Notice that it may be convenient for the server to grant an agreement to a known spammer for the sole purpose of rejecting any mail identified that way.
a7dcb1587d55b228cfa8d66886daa6496291af2a
1511
1508
2008-12-29T10:37:57Z
Ale
1
/* Server response */ temporary failures for multiple mailboxes
wikitext
text/x-wiki
The '''EHLO advertised URL''' receives ''forwarding requests''; that is, requests for establishing a [[forwarding agreement]]. The server of the URL is an MTA ready to grant such agreements. The client is an MTA configured with a [[forwarding recipe]], that is willing to relay related messages under an agreement. As its name says, this URL is advertised by the server in its EHLO response.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server may be respectively called a ''candidate Forwarder'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
Visiting this URL constitutes the first of the three steps provided for setting up a forwarding agreement. The URL itself may change as needed, since it is only used once for each request. The clients posts (or ''sends'', if using SMTP transport) the essential data that defines the agreement:
* The ''recipe-ID'' as known by the client.
* The ''recipe-KEY'', an authentication code for negotiating the agreement.
* A human readable ''recipe name''.
* The ''recipient address(es)''; the target addresses at the server's. The server will transform these into the agreement's [[forwarding agreement#user-ID|user-ID]], according to its internal data structures.
* The agreement's ''category'', one of the [[forwarding agreement#category|types defined]].
* The [[policy negotiation URL]], where the server will in turn pay a visit.
* Optionally, the ''forwarder-ID''; this is the identity of the client as known by the server, in case the client has already entered into an agreement with the same server.
* Optionally, any evidence that may be relevant. For example, the IP address and GMT date of the user's opt-in.
The tentative list above is meant to comprise all the data to fully describe the forwarder's intentions.
The recipe-ID and the recipe-KEY will be used by the server to identify itself when it will, in turn, pay a visit to the supplied policy negotiation URL. By contrast, the ''recipe name'' is what will be visible to users and should meaningfully identify the forwarding. The name may be the incoming address at the client's in the case of static forwarding, or the newsletter or mailing list name.
The client is not authenticated at this stage. If a ''forwarder-ID'' is supplied, the server should verify that the policy negotiation URL coincides with the one already stored for that ID. If not recognized, the server must not use the supplied ''forwarder-ID'' for making decisions, but may use it as a hint to synthesize the content of the corresponding field of the agreement.
The server should carry out any verification that it wishes. If supplied evidence includes IP addresses that the server can verify, it should do so before they possibly change and before relevant log files are obliterated. Notice that, except for evidence, no IP addresses are involved.
=== Server response ===
The server accepts the request by creating an ''agreement-ID'' and communicating it to the client. The agreement-ID is a key to all related data, including the recipient address(es). The recipe-ID may be used as a prefix to create agreement-IDs that relate to the same remote recipe.
The server may take several paths. If the server can estimate that the agreement is likely to be granted within a few hours, it should say so. That information is needed by the client in order to decide how to queue the message at hand.
In case of multiple recipients, if the server cannot handle them uniformly it may respond with a temporary failure that includes a list of one or more addresses that can be handled uniformly and are likely to generate a positive response. In general, there should be only one address. However, some cases of static forwarding to multiple mailboxes might be accepted. (It is advisable to forward to a single mailbox that in turn explodes locally to the desired targets, if at all possible.)
If any verification fails, the server may reject the current request and let the client try again with a better one. If the request mentions an agreement that has already been established, the server should just signal that this is a spoof retrial.
If the server requires human intervention, or other lengthy process that may eventually result in negotiating a policy and granting the agreement, it should signal so. In this case the client marks the recipe as having an agreement underway, and continues to relay as usual meanwhile. It is the server responsibility to eventually visit the policy negotiation URL, possibly for the sole purpose of canceling the pending request.
Notice that it may be convenient for the server to grant an agreement to a known spammer for the sole purpose of rejecting any mail identified that way.
40c53972f8fc6b0492a283183685e57ef8185194
policy negotiation URL
0
21
1509
1504
2008-12-29T10:03:33Z
Ale
1
fix Transmitter => Forwarder
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Forwarded'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes as well as database design.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''agreement-ID''.
The recipe-ID and the agreement-ID unambiguously identify the relevant (target) recipient address(es). The recipe-KEY authenticates the client.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes and completed agreements, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''forwarder-ID'', ''password'', ''[[completion URL]]'' and ''determination'' are set-only elements that must be set once, before the agreement is completed. The server may refuse to change its forwarder-ID or the completion URL afterward. The password is already expired when it is being set, which forces the use of the completion URL. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''forwarder-ID'', ''password'', and ''completion URL'': it is a human readable text explaining why the client acted the way it did.
Finally, besides ''get'' and ''set'', a ''delete'' element may be posted to a completed agreement. It means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned (See [[#Server response|below]].)
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts and tools. However, a ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who has been honoring a forwarding agreement for some time, might ask its peer to certify that. The receiving MTA should have collected enough data to conclude that a forwarder is not a spammer, before signing.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, in case the client comes in with a nonexistent receipt-ID, or invalid recipient address(es). The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar errors possibly due to lack of synchronization.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
Positive responses should always include the status of the agreement. It remains ''underway'' until a forwarder-ID/password pair and completion URL have not been set. Afterward it switches to ''pending completion'' until a valid password has been set by visiting the URL thus provided. Eventually it will be ''complete''. The server should react to a determination setting, that is the client's refusal to grant the agreement, by deleting all data, as if receiving a ''delete'' verb.
It goes without saying that, after it has acknowledged a given set of options, the server must honor those settings. Effective changes are not necessarily synchronous, but must be carried out withing a reasonable amount of hours. If this URL is being serviced by a different machine than the one that hosts the recipe, and the latter is currently down or disconnected, fulfilling the request has to be delayed. Obviously, mail must not be relayed by an MTA which is down or disconnected. Settings must take place within a few hours after that MTA gets back into operations.
A delete request, or a determination not to grant a forwarding agreement, implies to '''remove all occurrences of the relevant email address(es)''' from the forwarding recipe. For static recipes, that means to delete the recipe ''and'' the mailbox; users might just disable forwarding otherwise. The status of the agreement switches to ''deleted'', and the server shall continue to acknowledge valid requests about it, until the delete operation is actually completed. That is to say, the recipe data and keys used to service this URL must be deleted ''after'' the recipe data that make forwarding possible. Thereafter, requests will fail.
ebfa80b9b2223525bdb887d62c70793cf42fcb83
1524
1509
2009-02-17T16:28:57Z
Ale
1
/* Credentials and cryptographic support */
wikitext
text/x-wiki
The '''policy negotiation URL''' is where a [[forwarding agreement]] is established and maintained. The server of the URL is the forwarding MTA that applied for, and possibly obtained, an agreement associated with a specific [[forwarding recipe]]. The client is the MTA who granted (or is going to grant) the agreement, or some other entity acting on behalf of one or more of the final recipients involved in the forwarding.
Please note that the client and server roles are exchanged with respect to the other two handshake URLs. The server is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Server and client are also respectively named ''Forwarded'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL must accept different types of requests. Various queries are provided for learning the current settings and the available options. Corresponding actions are provided for altering those settings. For an HTTP oriented URL, it might make sense to differentiate the query part of the URL itself. However, a one-to-one correspondence between a forwarder and its policy negotiation URL simplifies the task of identifying the forwarders, for authentication purposes as well as database design.
Every request to this URL must post the elements that identify the recipe and the client, as given in the [[EHLO advertised URL|forwarding request]]:
* the ''recipe-ID'',
* a valid ''recipe-KEY'', and
* the ''agreement-ID''.
The recipe-ID and the agreement-ID unambiguously identify the relevant (target) recipient address(es). The recipe-KEY authenticates the client.
The next element in the body of the request may have a local name of ''get'' or ''set'', according to the type of request that the client posts. In the following, we describe the meaning of the data. The format will have to be worked out so as to allow, for each keyword associated with a ''get'' or ''set'' verb, a list of values, or ''named-index=value'' pairs. Example keywords are as follows:
* ''DNSBL'', a possibly empty list of available DNSBLs accompanied with a boolean value that tells if they are active or not for the relevant recipe,
* ''SPF'', an array of boolean reject/accept values, one for each possible SPF result, and
* ''flags'', the '''enabled''' and '''non-disclosure''' values as mentioned [[forwarding recipe#Policy considerations|here]].
The ''recipe-KEY'' itself can be changed by the client, for security reasons. The client usually is the ''final MTA''; however, it may in turn forward messages under a further agreement. That is to say, the client may also be a Mediator. In that case, it must ask for, and obtain, additional receipt-KEYs that it will eventually return to final MTAs, so that they can access senders recursively.
For static recipes and completed agreements, the server must honor a request to ''get forwarders'', that a client may issue to learn the chain of agreements that have already been established between the server playing the role of target host, a.k.a. MDA, and third parties playing the role of Mediators. This is where the additional receipt-KEYs mentioned in the previous paragraph are returned. The ''forwarders'' keyword is going to be get-only, in the sense that ''set forwarders'' is not going to be supported: The final MTA will have to access each upstream host in order to learn or change policy settings.
In addition, ''forwarder-ID'', ''password'', ''[[completion URL]]'' and ''determination'' are set-only elements that must be set once, before the agreement is completed. The server may refuse to change its forwarder-ID or the completion URL afterward. The password is already expired when it is being set, which forces the use of the completion URL. Setting a void password equates to saying that the old one is expired. The ''determination'' must be set if the client does not set ''forwarder-ID'', ''password'', and ''completion URL'': it is a human readable text explaining why the client acted the way it did.
Finally, besides ''get'' and ''set'', a ''delete'' element may be posted to a completed agreement. It means to erase any data concerning the forwarding recipe, as far as the relevant recipient addresses are concerned (See [[#Server response|below]].)
=== Credentials and cryptographic support ===
When using HTTPS transport, the client should download and verify the certificate being provided. This is done a couple of layers below SOAP. (It can be done ''within'' SOAP if we throw in more [[wp:Web Services|WS-*]] stuff. However, requiring that may make the protocol overly complex.) The reputation of the certificate signer could be taken into account when deciding about the trustworthiness of a new forwarder. However, most certificates are signed by just one CA, and most CAs don't spend much effort into verifying what they sign.
An intriguing subject is the possibility to get/set credentials. A credential or certificate, in this context, is an asymmetric key signed by some other MTAs. This might be done with classical X.509 PKI concepts and tools. However, a ''Web of Trust'', à la PGP, seems better suited for this task. MTAs already publish cryptographic keys. Infrastructures and key servers for signing and revoking keys already exist, so all what is necessary is to provide a list of pointers.
An MTA who has been honoring a forwarding agreement for some time, might ask its peer to certify that. The receiving MTA should have collected enough data to conclude that a forwarder is not a spammer, before signing.
An MTA who is in doubt whether to grant an agreement to a given forwarder might get the list of credentials and verify the signatures of any signer it knows to be a trustworthy peer. The number of known signers would then be a valid complement of the relevant ''whois'' information. For example, the client may check how many months ago the domain has been registered, if the names of its responsible staff are unencumbered by privacy protection, then, say, multiply that number by the umber of recognized signatures, and grant the agreement if the result is more than a predefined minimum. Taking into account the tree of indirect trust (with suitable coefficients) might result in a reliable algorithm. However, that may complicate this specification more than what it is worth.
=== Server response ===
The server must fail for any unrecognized or invalid identification, in case the client comes in with a nonexistent receipt-ID, or invalid recipient address(es). The server should fail with a transient error in case the client wants to enable an unsupported DNSBL, and similar errors possibly due to lack of synchronization.
For valid ''get'' requests, the server must include a list of values that the client may modify in a subsequent ''set'' request.
Positive responses should always include the status of the agreement. It remains ''underway'' until a forwarder-ID/password pair and completion URL have not been set. Afterward it switches to ''pending completion'' until a valid password has been set by visiting the URL thus provided. Eventually it will be ''complete''. The server should react to a determination setting, that is the client's refusal to grant the agreement, by deleting all data, as if receiving a ''delete'' verb.
It goes without saying that, after it has acknowledged a given set of options, the server must honor those settings. Effective changes are not necessarily synchronous, but must be carried out withing a reasonable amount of hours. If this URL is being serviced by a different machine than the one that hosts the recipe, and the latter is currently down or disconnected, fulfilling the request has to be delayed. Obviously, mail must not be relayed by an MTA which is down or disconnected. Settings must take place within a few hours after that MTA gets back into operations.
A delete request, or a determination not to grant a forwarding agreement, implies to '''remove all occurrences of the relevant email address(es)''' from the forwarding recipe. For static recipes, that means to delete the recipe ''and'' the mailbox; users might just disable forwarding otherwise. The status of the agreement switches to ''deleted'', and the server shall continue to acknowledge valid requests about it, until the delete operation is actually completed. That is to say, the recipe data and keys used to service this URL must be deleted ''after'' the recipe data that make forwarding possible. Thereafter, requests will fail.
b1454e78567dac4ad6a1091e6d70c86f99779a50
completion URL
0
22
1510
1503
2008-12-29T10:04:09Z
Ale
1
fix Transmitter => Forwarder
wikitext
text/x-wiki
The '''completion URL''' formally completes a [[forwarding agreement]] handshake by setting a valid password; in addition, it serves those facets of the negotiation that imply setting parameters on the server, e.g. the Feedback Loop address, and agreement termination. The server of the URL is an MTA that has negotiated an agreement. The client is an MTA configured with the [[forwarding recipe]] that the agreement is linked with.
The client is a ''Mediator'' according to Internet Mail Architecture[http://tools.ietf.org/html/draft-crocker-email-arch-11]. Client and server are also respectively named ''Forwarder'' and ''MDA'' according to MHS[http://open-mail.org/MHSmodel.html] terminology.
== Semantics ==
This URL allows the client to set various types of data. It may coincide or not with the [[EHLO advertised URL]], depending on the server convenience. If it coincides, it must obviously accept forwarding requests, but they are not considered here.
Every request to this URL must post the elements that authenticate the client and identify the agreement:
* ''forwarder-ID'',
* the ''agreement-ID'', and
* a valid (although possibly expired) ''password''.
A request may contain one or more of the following data.
==== password ====
A password may be expired as far as SMTP Authentication is concerned, but still valid for setting a new password using this URL. Changing the password should be the first client concern in this case. The client may decide at any time that the password should be changed, after receiving a 535 ''Authentication credentials invalid'' response from the relevant SMTP server, or after its password has been reset at its policy negotiation URL.
Notice that a forwarder may have multiple agreements with the server. Each agreement has its own password.
The server may reject weak passwords.
==== Feedback Loop email address ====
The server must accept this address, and forward there any report associated with mail sent under the relevant forwarding agreement. The server should have an automated reporting mechanism; if it doesn't, this address can still be used to send complaints manually, in the correct format. The ''Abuse Feedback Reporting Format'' (ARF)[http://tools.ietf.org/html/draft-shafranovich-feedback-report-05] is assumed.
The server may reject invalid email addresses.
==== policy negotiation URL ====
The policy negotiation URL is used to recognize forwarders in case of new forwarding requests, thus it should not change. However, organizational changes may require that host names and/or locations be changed. Changing it for the given agreement may result in changing it for all agreements stipulated with the same forwarder-ID, according to the database design at the server. If not, the client should change the URL also for all existing agreements ''before'' requiring new ones. If not, its requests for new agreements may be rejected or generate a different forwarder-ID.
Forwarding agreements are not transferable, and the forwarder-ID cannot be changed. Hence, changing the negotiation URL is not meant for that. In case a whole line of business is merged or transferred, changing the URL may serve to cope with the relevant organizational changes.
The server may refuse to change the URL. In that case, a forwarder should terminate existing agreements and enter new ones.
==== agreement termination ====
Mailing lists can be canceled, and static recipes can be deleted, on the client's own initiative. When that happens, it should be notified using this URL. The notification should be done ''after'' the deletion. The server may verify the deletion at the negotiation URL. The client may give this notification after the server issued a ''delete'' command at the negotiation URL. If the client issues a deletion on its own initiative, it is its responsibility to also terminate any relevant forwarding chain upstream.
=== Server response ===
The server must fail in case of bad identification or authentication.
Positive server responses must include a list of the accepted settings. In case of URL changes, it must specify if the URL has been changed for more than one agreement.
Successfully setting a password for the first time concludes the handshake, and the forwarding agreement is considered undertaken.
0e8442df204b989443eec813c4b362630b81a557
privacy laws
0
17
1515
1463
2009-01-23T18:56:12Z
Ale
1
/* An example */ new section
wikitext
text/x-wiki
By '''privacy laws''' we mean any of the legal frameworks that regulate information privacy in the USA, EU, and several national countries. Although not exactly uniform, the existing bodies of rules tend to converge toward certain principles aimed at protecting people against undiscriminated usage of collected ''personally identifiable information'', a.k.a. ''personal data''.
== Freedom in the digital era ==
Advancements in electronics allow to exercise pervasive and widespread control on what the people do. Digital control can provide for appealing means for implementing commercial practices on unprecedentedly wide scales. While customers used to be able to guard against a shopkeeper foxiness by themselves, they are defenseless when confronted with large business enterprises who systematically exchange their customers' PI information with one another.
As it often happens during the transition from an era to the next, criteria and even laws that have been stipulated in times when their enforcement was provided by radically different means, may become questionable. The efforts undertaken thus far to define the legal terms and the issues implied by the new scenario, are the first chisel blows for establishing the future shape.
The Internet protocols that make this all possible, including SMTP, have necessarily been designed before it all began.
== Implementing the law ==
''Opt-in'' and ''opt-out'' are two key concept for regulating how commercial newsletters may be sent. The SMTP protocol talks about ''mailing lists'', not newsletters. Technically, they are the same thing, since the exact working of the subscribe and unsubscribe operations is not specified rigorously.
RFC 2369 mandates some headers with special URLs. The ''List-Unsubscribe'' header field contains the command to directly unsubscribe from the list. However, mail clients usually don't show it to the user. A possible reason for that uncooperative behavior may lay in the unknown nature of the command, that may expose the user to security risks if programmed by a malicious sender.
In addition, whatever method of subscribe or unsubscribe gets executed, users are given just a notice of the outcome of the operation, that they seldom save or print. The data remains at the lists owners', which makes it hard to take legal stances. There is no need to take legal actions, because legitimate senders always honor users commands; however, such tautological statements contribute to make ''spam'' a fuzzy term.
An email address is considered personally identifiable data. The agreement of its owner is required for storing and using that data. Its owner has the right to amend or delete it. It is the law. The [[solution proposed]] provides for a standard unsubscribe method, and provides for a copy of the users commands to be kept by their ESPs.
== An example ==
Alice used to work for example.com. When she left, she asked the postmaster to place a .forward file for her, in order to continue to receive personal mail. After a few years, only spam is being forwarded. She would like the forwarding recipe to be removed. However, the postmaster she knew also left the company.
Of course, she could make an official request to the company. That implies getting in touch with her former boss. However, she wouldn't like to call him. Possibly, for the same reasons that she left the company years ago.
Asking someone else to do something for us, is not the same as doing it directly. Does the term ''wiki'' teach anything in this respect?
a5daa28ab4239343fcb038514f0b35e8db1039e1
File:Ale-dec2008.jpg
6
24
1516
2009-01-28T11:43:46Z
Ale
1
Me, portrayed by my wife during our winter holidays.
wikitext
text/x-wiki
Me, portrayed by my wife during our winter holidays.
04a6bfadbc20c2cdd7480dc3224228e4649c4c4f
1518
1516
2009-01-28T17:46:44Z
Ale
1
uploaded a new version of "[[Image:Ale-dec2008.jpg]]": reloaded
wikitext
text/x-wiki
Me, portrayed by my wife during our winter holidays.
04a6bfadbc20c2cdd7480dc3224228e4649c4c4f
1520
1518
2009-01-28T18:14:38Z
Ale
1
mention the place
wikitext
text/x-wiki
Me, portrayed by my wife during our winter holidays in [[wp:Welschnofen|Carezza]].
fa4cc72b1625e5e2f381197bee8d543a272e80c7
User:Ale
2
25
1517
2009-01-28T17:27:09Z
Ale
1
insert picture
wikitext
text/x-wiki
[[Image:Ale-dec2008.jpg|200px|thumb|left|alt 31Dec 2008]
e3213e96a33c11c233bfe9c55a87521912f56f00
1519
1517
2009-01-28T18:07:43Z
Ale
1
some text
wikitext
text/x-wiki
[[Image:Ale-dec2008.jpg|thumb|center|400px|Alessandro Vesely, site admin]]
7e75ff4cf82a0ac96648204bdb8de3762c3d6aa2
FixForwarding:Copyrights
4
2
1521
1410
2009-02-03T13:32:18Z
Ale
1
typo
wikitext
text/x-wiki
The content of this site is copyright of FixForwarding.org, and is available as stated below. This means that Authors agree to submit their contribution using such terms. In this respect, FixForwarding.org is an abstract entity that stands for the set of Authors who have contributed to the resulting "joint work".
Permission is granted to copy, distribute and/or modify the contents of this site under the terms of the [http://www.gnu.org/licenses/fdl-1.2.html#TOC1 GNU Free Documentation License, Version 1.2] or any later version published by the [http://www.fsf.org/ Free Software Foundation]; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license can be seen following the links in this paragraph.
3e4ea93eb0afabbca46bf145aee9bda96e459329
forwarding recipe
0
10
1522
1455
2009-02-03T13:35:51Z
Ale
1
/* Static recipes */ fix tag
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
=== Static recipes ===
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<code>| sendmail -f postmaster@example.org newrecipient@example.com</code>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
=== Newsletters and mailing lists ===
Dynamic recipes are managed by specialized software. Such software has well defined schemata to precisely define what messages are forwarded to what addresses. A number of ''best practices'' documents exists that specify how to reliably send bulk mail, e.g. [http://mipassoc.org/spamops/index.html MIPAssoc]. In case the model proposed here will be adopted, it may be added to the list of things to do, but it will have to be done on a per-package basis.
=== Backup MXes ===
A backup MX also does forwarding. What is special in it, is that forwarding recipes are ''implicit''. See also [[boundary#Backup MXes]].
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
=== Envelope sender tweak ===
An easy technique to let the sending software know that a message is being forwarded is by changing the envelope sender to some special value that is only understood within the host/ADMD. For example<code>
| sendmail -f ff=<i>keyword</i>=<i>param</i>=postmaster@example.org newrecipient@example.com</code>
The line above provides a keyword and a parameter for using an existing forwarding agreement, or start negotiating one. The sending software, upon seeing that the remote MX accepts the ''ff'' model, shall search a local database for a record corresponding to <code>newrecipient@example.com</code>, the remote MX, and the keyword parameter. That record is considered a ''complement'' of the forwarding recipe.
If the record is found and contains an id/password for logging in, the sending software recovers the original envelope sender from the ''Return-Path'' header and forwards the message according to this model. For ongoing negotiations, the record may contain an indication to either queue the message or send it normally until the negotiation completes. Otherwise, the keyword and parameter can be used to load a configurated environment and launch the first step of the negotiation. In this case the return code indicates whether to queue the message or sending it normally.
Sending the message normally, which is also done in case the remote MX does not support ''FF'', implies using the default envelope sender, in this case <code>postmaster@example.org</code>. The tweaked envelope sender never leaves the relevant host. However, it may be set on an internal host inside the same ADMD in case the existing forwarding recipe is not on a boundary host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
aed95f5a57add4f587b960e9e7fc2a6930381fc2
1523
1522
2009-02-03T13:37:04Z
Ale
1
/* Envelope sender tweak */ fix tag
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
=== Static recipes ===
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<code>| sendmail -f postmaster@example.org newrecipient@example.com</code>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
=== Newsletters and mailing lists ===
Dynamic recipes are managed by specialized software. Such software has well defined schemata to precisely define what messages are forwarded to what addresses. A number of ''best practices'' documents exists that specify how to reliably send bulk mail, e.g. [http://mipassoc.org/spamops/index.html MIPAssoc]. In case the model proposed here will be adopted, it may be added to the list of things to do, but it will have to be done on a per-package basis.
=== Backup MXes ===
A backup MX also does forwarding. What is special in it, is that forwarding recipes are ''implicit''. See also [[boundary#Backup MXes]].
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
=== Envelope sender tweak ===
An easy technique to let the sending software know that a message is being forwarded is by changing the envelope sender to some special value that is only understood within the host/ADMD. For example
<code>| sendmail -f ff=<i>keyword</i>=<i>param</i>=postmaster@example.org newrecipient@example.com</code>
The line above provides a keyword and a parameter for using an existing forwarding agreement, or start negotiating one. The sending software, upon seeing that the remote MX accepts the ''ff'' model, shall search a local database for a record corresponding to <code>newrecipient@example.com</code>, the remote MX, and the keyword parameter. That record is considered a ''complement'' of the forwarding recipe.
If the record is found and contains an id/password for logging in, the sending software recovers the original envelope sender from the ''Return-Path'' header and forwards the message according to this model. For ongoing negotiations, the record may contain an indication to either queue the message or send it normally until the negotiation completes. Otherwise, the keyword and parameter can be used to load a configurated environment and launch the first step of the negotiation. In this case the return code indicates whether to queue the message or sending it normally.
Sending the message normally, which is also done in case the remote MX does not support ''FF'', implies using the default envelope sender, in this case <code>postmaster@example.org</code>. The tweaked envelope sender never leaves the relevant host. However, it may be set on an internal host inside the same ADMD in case the existing forwarding recipe is not on a boundary host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
f37a69982bc5d85759a2491751baa34ffcb1d95d
1526
1523
2009-05-23T09:25:51Z
Ale
1
/* Backup MXes */ link to ''Backup MX''
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
=== Static recipes ===
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<code>| sendmail -f postmaster@example.org newrecipient@example.com</code>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
=== Newsletters and mailing lists ===
Dynamic recipes are managed by specialized software. Such software has well defined schemata to precisely define what messages are forwarded to what addresses. A number of ''best practices'' documents exists that specify how to reliably send bulk mail, e.g. [http://mipassoc.org/spamops/index.html MIPAssoc]. In case the model proposed here will be adopted, it may be added to the list of things to do, but it will have to be done on a per-package basis.
=== Backup MXes ===
<!-- TODO: add template {{main|Forwarding agreement}} -->
''Main article: [[Backup MX]]''
A backup MX also does forwarding. What is special in it, is that forwarding recipes are ''implicit''.
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
=== Envelope sender tweak ===
An easy technique to let the sending software know that a message is being forwarded is by changing the envelope sender to some special value that is only understood within the host/ADMD. For example
<code>| sendmail -f ff=<i>keyword</i>=<i>param</i>=postmaster@example.org newrecipient@example.com</code>
The line above provides a keyword and a parameter for using an existing forwarding agreement, or start negotiating one. The sending software, upon seeing that the remote MX accepts the ''ff'' model, shall search a local database for a record corresponding to <code>newrecipient@example.com</code>, the remote MX, and the keyword parameter. That record is considered a ''complement'' of the forwarding recipe.
If the record is found and contains an id/password for logging in, the sending software recovers the original envelope sender from the ''Return-Path'' header and forwards the message according to this model. For ongoing negotiations, the record may contain an indication to either queue the message or send it normally until the negotiation completes. Otherwise, the keyword and parameter can be used to load a configurated environment and launch the first step of the negotiation. In this case the return code indicates whether to queue the message or sending it normally.
Sending the message normally, which is also done in case the remote MX does not support ''FF'', implies using the default envelope sender, in this case <code>postmaster@example.org</code>. The tweaked envelope sender never leaves the relevant host. However, it may be set on an internal host inside the same ADMD in case the existing forwarding recipe is not on a boundary host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
8b3eca6d84f698bc37acdbdea8501a6e45c73645
1548
1526
2010-07-20T21:28:29Z
Test
3
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system creating a [http://www.superiorpapers.com/ essay writing]. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
=== Static recipes ===
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<code>| sendmail -f postmaster@example.org newrecipient@example.com</code>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
=== Newsletters and mailing lists ===
Dynamic recipes are managed by specialized software. Such software has well defined schemata to precisely define what messages are forwarded to what addresses. A number of ''best practices'' documents exists that specify how to reliably send bulk mail, e.g. [http://mipassoc.org/spamops/index.html MIPAssoc]. In case the model proposed here will be adopted, it may be added to the list of things to do, but it will have to be done on a per-package basis.
=== Backup MXes ===
<!-- TODO: add template {{main|Forwarding agreement}} -->
''Main article: [[Backup MX]]''
A backup MX also does forwarding. What is special in it, is that forwarding recipes are ''implicit''.
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
=== Envelope sender tweak ===
An easy technique to let the sending software know that a message is being forwarded is by changing the envelope sender to some special value that is only understood within the host/ADMD. For example
<code>| sendmail -f ff=<i>keyword</i>=<i>param</i>=postmaster@example.org newrecipient@example.com</code>
The line above provides a keyword and a parameter for using an existing forwarding agreement, or start negotiating one. The sending software, upon seeing that the remote MX accepts the ''ff'' model, shall search a local database for a record corresponding to <code>newrecipient@example.com</code>, the remote MX, and the keyword parameter. That record is considered a ''complement'' of the forwarding recipe.
If the record is found and contains an id/password for logging in, the sending software recovers the original envelope sender from the ''Return-Path'' header and forwards the message according to this model. For ongoing negotiations, the record may contain an indication to either queue the message or send it normally until the negotiation completes. Otherwise, the keyword and parameter can be used to load a configurated environment and launch the first step of the negotiation. In this case the return code indicates whether to queue the message or sending it normally.
Sending the message normally, which is also done in case the remote MX does not support ''FF'', implies using the default envelope sender, in this case <code>postmaster@example.org</code>. The tweaked envelope sender never leaves the relevant host. However, it may be set on an internal host inside the same ADMD in case the existing forwarding recipe is not on a boundary host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
ba67e5b94bc912679c4041b0e3c1c47904ec7dd7
1549
1548
2010-07-20T21:28:44Z
Test
3
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system creating an [http://www.superiorpapers.com/ essay writing]. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
=== Static recipes ===
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<code>| sendmail -f postmaster@example.org newrecipient@example.com</code>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
=== Newsletters and mailing lists ===
Dynamic recipes are managed by specialized software. Such software has well defined schemata to precisely define what messages are forwarded to what addresses. A number of ''best practices'' documents exists that specify how to reliably send bulk mail, e.g. [http://mipassoc.org/spamops/index.html MIPAssoc]. In case the model proposed here will be adopted, it may be added to the list of things to do, but it will have to be done on a per-package basis.
=== Backup MXes ===
<!-- TODO: add template {{main|Forwarding agreement}} -->
''Main article: [[Backup MX]]''
A backup MX also does forwarding. What is special in it, is that forwarding recipes are ''implicit''.
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
=== Envelope sender tweak ===
An easy technique to let the sending software know that a message is being forwarded is by changing the envelope sender to some special value that is only understood within the host/ADMD. For example
<code>| sendmail -f ff=<i>keyword</i>=<i>param</i>=postmaster@example.org newrecipient@example.com</code>
The line above provides a keyword and a parameter for using an existing forwarding agreement, or start negotiating one. The sending software, upon seeing that the remote MX accepts the ''ff'' model, shall search a local database for a record corresponding to <code>newrecipient@example.com</code>, the remote MX, and the keyword parameter. That record is considered a ''complement'' of the forwarding recipe.
If the record is found and contains an id/password for logging in, the sending software recovers the original envelope sender from the ''Return-Path'' header and forwards the message according to this model. For ongoing negotiations, the record may contain an indication to either queue the message or send it normally until the negotiation completes. Otherwise, the keyword and parameter can be used to load a configurated environment and launch the first step of the negotiation. In this case the return code indicates whether to queue the message or sending it normally.
Sending the message normally, which is also done in case the remote MX does not support ''FF'', implies using the default envelope sender, in this case <code>postmaster@example.org</code>. The tweaked envelope sender never leaves the relevant host. However, it may be set on an internal host inside the same ADMD in case the existing forwarding recipe is not on a boundary host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
d1a9a8f3217b5dbb387669e08e821db0bb4b00f8
1550
1549
2010-07-21T08:44:11Z
Ale
1
Undo revision 1549 by [[Special:Contributions/Meryl20|Meryl20]] ([[User talk:Meryl20|Talk]])
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system creating a [http://www.superiorpapers.com/ essay writing]. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
=== Static recipes ===
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<code>| sendmail -f postmaster@example.org newrecipient@example.com</code>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
=== Newsletters and mailing lists ===
Dynamic recipes are managed by specialized software. Such software has well defined schemata to precisely define what messages are forwarded to what addresses. A number of ''best practices'' documents exists that specify how to reliably send bulk mail, e.g. [http://mipassoc.org/spamops/index.html MIPAssoc]. In case the model proposed here will be adopted, it may be added to the list of things to do, but it will have to be done on a per-package basis.
=== Backup MXes ===
<!-- TODO: add template {{main|Forwarding agreement}} -->
''Main article: [[Backup MX]]''
A backup MX also does forwarding. What is special in it, is that forwarding recipes are ''implicit''.
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
=== Envelope sender tweak ===
An easy technique to let the sending software know that a message is being forwarded is by changing the envelope sender to some special value that is only understood within the host/ADMD. For example
<code>| sendmail -f ff=<i>keyword</i>=<i>param</i>=postmaster@example.org newrecipient@example.com</code>
The line above provides a keyword and a parameter for using an existing forwarding agreement, or start negotiating one. The sending software, upon seeing that the remote MX accepts the ''ff'' model, shall search a local database for a record corresponding to <code>newrecipient@example.com</code>, the remote MX, and the keyword parameter. That record is considered a ''complement'' of the forwarding recipe.
If the record is found and contains an id/password for logging in, the sending software recovers the original envelope sender from the ''Return-Path'' header and forwards the message according to this model. For ongoing negotiations, the record may contain an indication to either queue the message or send it normally until the negotiation completes. Otherwise, the keyword and parameter can be used to load a configurated environment and launch the first step of the negotiation. In this case the return code indicates whether to queue the message or sending it normally.
Sending the message normally, which is also done in case the remote MX does not support ''FF'', implies using the default envelope sender, in this case <code>postmaster@example.org</code>. The tweaked envelope sender never leaves the relevant host. However, it may be set on an internal host inside the same ADMD in case the existing forwarding recipe is not on a boundary host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
ba67e5b94bc912679c4041b0e3c1c47904ec7dd7
1551
1550
2010-07-21T08:44:34Z
Ale
1
Undo revision 1548 by [[Special:Contributions/Meryl20|Meryl20]] ([[User talk:Meryl20|Talk]])
wikitext
text/x-wiki
A '''forwarding recipe''' is the procedural data by which a mail server can build a new envelope for an existing message before re-injecting it into the mail system. It includes the forwarded address that the original message bore, one or more new recipient addresses to whom the re-injected message is destined, and a policy. The policy determines the new envelope sender address, at least.
== Common forwarding recipes ==
=== Static recipes ===
Historically, recipes were written in [http://www.sendmail.org/ sendmail]'s <code>.forward</code> files in a recipient's home directory, in order to elicit specific forwarding behavior from the server when a message is received at a given mailbox. Recipes have to be addressable by their forwarded address, so that the software can find any relevant recipe upon message reception. Obviously, the software that implements the SMTP server dictates the format that recipes have to comply. Depending on the implementation, the data that conceptually makes up a recipe may be spread among several files.
A pipe character (<code>|</code>) in a <code>.forward</code> file allows executing external programs. Similar concepts work for [http://www.qmail.org/man/man5/dot-qmail.html .qmail] and [http://www.courier-mta.org/dot-courier.html .courier]. A forwarding recipe may consist of
<code>| sendmail -f postmaster@example.org newrecipient@example.com</code>
Notice that the forwarded address is implied by the location on disc where the recipe is written. In addition, the behavior triggered by messages bouncing to <code>postmaster@example.org</code> is conceptually part of this recipe but is specified somewhere else.
=== Newsletters and mailing lists ===
Dynamic recipes are managed by specialized software. Such software has well defined schemata to precisely define what messages are forwarded to what addresses. A number of ''best practices'' documents exists that specify how to reliably send bulk mail, e.g. [http://mipassoc.org/spamops/index.html MIPAssoc]. In case the model proposed here will be adopted, it may be added to the list of things to do, but it will have to be done on a per-package basis.
=== Backup MXes ===
<!-- TODO: add template {{main|Forwarding agreement}} -->
''Main article: [[Backup MX]]''
A backup MX also does forwarding. What is special in it, is that forwarding recipes are ''implicit''.
== Quest for agreement ==
A forwarding recipe introduces a new segment in the message path, which should be considered within the recipient's realm. In fact, the ''newrecipient'' address is [[wp:personally identifiable information]] of its owner, therefore its owner should have explicitly given a permission to use it in a certain way. That permission, also called ''opt-in'', is not routinely asked for. Even when it is, e.g. when subscribing to a mailing list, the relevant forwarding recipe is stored at the forwarding host only. [[Forwarding agreement]]s are proposed to obviate this limitation and let a forwarding recipe be known and acted upon by its owner, directly from the target host.
=== Envelope sender tweak ===
An easy technique to let the sending software know that a message is being forwarded is by changing the envelope sender to some special value that is only understood within the host/ADMD. For example
<code>| sendmail -f ff=<i>keyword</i>=<i>param</i>=postmaster@example.org newrecipient@example.com</code>
The line above provides a keyword and a parameter for using an existing forwarding agreement, or start negotiating one. The sending software, upon seeing that the remote MX accepts the ''ff'' model, shall search a local database for a record corresponding to <code>newrecipient@example.com</code>, the remote MX, and the keyword parameter. That record is considered a ''complement'' of the forwarding recipe.
If the record is found and contains an id/password for logging in, the sending software recovers the original envelope sender from the ''Return-Path'' header and forwards the message according to this model. For ongoing negotiations, the record may contain an indication to either queue the message or send it normally until the negotiation completes. Otherwise, the keyword and parameter can be used to load a configurated environment and launch the first step of the negotiation. In this case the return code indicates whether to queue the message or sending it normally.
Sending the message normally, which is also done in case the remote MX does not support ''FF'', implies using the default envelope sender, in this case <code>postmaster@example.org</code>. The tweaked envelope sender never leaves the relevant host. However, it may be set on an internal host inside the same ADMD in case the existing forwarding recipe is not on a boundary host.
== Policy considerations ==
In its simplest form, a forwarding recipe may be difficult to manage. The complexity may increase depending on who and how can create mailboxes and recipes on the system, what spam filtering options are available, and spam reporting mechanisms.
On a small system where only the postmaster creates mailboxes and recipes, for example, a recipe as exemplified above may make sense. Upon receiving a delivery failure, the postmaster should decide whether to drop the recipe as the target address becomes unavailable or to advise the final recipient that the relevant mailbox is full. Larger systems will require to automate that behavior, therefore it becomes necessary to define exactly when and how each operation is performed. For example, a policy can specify a different behavior for a mailbox full situation if an alternative email address or, say, an SMS-enabled phone number are available for advising the final recipient.
A policy may contain various configuration items. It can provide for a number of different states, so that the server can stop receiving new mail in certain cases, possibly requiring that appropriate local responses are given, e.g.:
<pre>
551 User not local; please try <forward-path>, or
251 User not local; will forward to <forward-path>
</pre>
Two flags are as follows:
* '''enabled''': mail is accepted, and
* '''non-disclosure''': the target address shall never be revealed.
As a forwarding recipe's policy is limited to local behavior, the ''non-disclosure'' flag affects the text in the server response, and do DSNs and MDNs as for lists. See RFC 3461, ''5.2.7.4 confidential forwarding addresses''; RFC 3798, ''6.2. Privacy''; RFC 3885.
8b3eca6d84f698bc37acdbdea8501a6e45c73645
boundary
0
14
1527
1449
2009-05-23T09:29:53Z
Ale
1
/* Backup MXes */ add link to ''Backup MX''
wikitext
text/x-wiki
In a given message path, there is a well determined '''boundary''' between the mail originating network (MON) and the mail receiving network (MRN). It lies where the first MX is looked up in the global DNS in order to determine the receiver for the next hop.
== Topology ==
The boundary is defined by the MX records of the recipient's domain in the ''global'' DNS. Internal DNS views may provide for outgoing mail paths, as an alternative to MTA-specific configuration. Because DNS is global, the domain servers are uniquely identified.
The same message may follow different paths at different times, depending on connection availability, DNS changes, and DNS randomization. In addition, when the recipient changes, the path changes widely. It can well happen that the same host is on one side of the boundary for message A, and it happens to be on the other side for message B, even if both messages end up to the same target host. On the other hand, the whole path may consist of a single server, resulting in a degenerated boundary inside it.
This topology is not necessarily related to ADministrative Management Domains (ADMDs). On the one hand, hosts belonging to an ADMD may end up not being involved in any inter-domain forwarding. On the other hand, hosts that don't belong to an ADMD may negotiate an agreement and enjoy the amount of trust that is required to perform inter-domain forwarding.
== Forwarders ==
Relays performing alias expansion are considered part of the MRN, if they use the target address legitimately.
== Backup MXes ==
<!-- TODO: add template {{main|Forwarding agreement}} -->
''Main article: [[Backup MX]]''
A message may pass through a backup MX if a direct connection to the target server is not available. The backup MX is considered part of the MRN, even if it currently does not have a list of valid users.
The way backup MXes currently operate generates backscatter. This, and the fact that connections are often very reliable, results in diminished use of backup MXes. Only large networks operate them, and they are usually in the same ADMD.
It is possible that the [[solution proposed]] here results in enhanced backup MXes operations. A backup MX has an implicit list of valid mailboxes that comprises any possible address within the given domain(s). However, it still needs to gather forwarding agreements explicitly. That would result in having an almost complete list of users. It may reply with a 4xx code for new users that are not in the agreements database. Additional mechanisms are needed (e.g. temporary blacklists of addresses, maximum allowed queries per time period) to make that behavior smooth.
== See Also ==
*[http://www.openspf.org/Community/Glossary SPF Community Glossary] has some more terminology and mentions where it originated.
1d63a0fdc3a2d7b240a4f45dda337f89a5c889b3
Backup MX
0
26
1528
2009-05-23T10:46:14Z
Ale
1
start new page
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages. Server outages are not much of a problem, except for outgoing servers that are configured with an unacceptably low retry interval. Some postmaster do so because they think that delayed DSNs can be difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.''
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message be timely delivered from the US to Europe even if the Atlantic link is down.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. Thay are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen.
<!-- == Alternatives and requirements ==
A cute trick
-->
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
9971dd64a9b89c333e272dfd8dab1ebeb1e10f19
1529
1528
2009-05-23T12:04:20Z
Ale
1
Continue page
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages. Server outages are not much of a problem, except for outgoing servers that are configured with an unacceptably low retry interval. Some postmaster do so because they think that delayed DSNs can be difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.''
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message be timely delivered from the US to Europe even if the Atlantic link is down.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. They are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen.
== Alternatives and requirements ==
The [[solution proposed]] for forwarding may somewhat lend itself for also doing backup MXes. That scenario implies that a backup MX has implicit [[forwarding recipe]]s for all users to all more preferred servers in the domain being backed up. The backup server would still have to negotiate a [[forwarding agreement]] in each case where a message actually has to go through for the first time. (Existing recipes are to be searched before implicit ones.)
A cute trick to initialize the system so that it doesn't have to reply 4xx codes until agreements are finalized, which is likely to happen if the primary host is down, is to provide a list of hashed email addresses. That way, a backup MX may check that a given address actually exists, and accept it, being confident that the primary server will accept it in turn. The forwarding agreement will be negotiated when the primary (or a more preferred secondary) comes up. That circumstance more or less coincides with the moment when the cleartext address corresponding to the hashed entry becomes known at the server. Since provisions for accepting forwarding agreements from a backup MX should have been set up already at the primary's, we can regard as substantially irrelevant the short period of time while the first message for a given address remains stored in the backup MX's cache. (During that time, the server knows the email address without being bound by an agreement.)
Besides the list of hashes, the ''initialization data'', may contain regular expressions to account for subaddresses, prefixes, catch-all's, honeypots, etcetera. More meta data may be needed. Provisions to periodically refresh the initialization data are also needed. Changes in the DNS that add or remove MXes, or just change preferences, have to be dealt with.
End users should not be able to delete their forwarding agreement at a backup MX, unless they also delete their mailbox at the primary MX. Blocking such agreements, i.e. leaving an existing recipe in place while configuring it to reply ''551 User not local'', may result in some disruption and noncompliance. Such blocking may be disallowed by domain policies. At any rate, privacy concerned users will gain the ability to retrieve the effective list of servers where their email addresses are stored (a somewhat idealistic wish, until some marketing function will say otherwise.)
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
* The [http://www.imc.org/ietf-smtp/mail-archive/msg05696.html ietf-smtp thread] that inspired this page
* [[wp:MX record#The backup MX]]
3b1ff52b6736ecfbfcec56f2d6898b0142a47df7
1530
1529
2009-05-23T13:42:08Z
Ale
1
/* Why have a backup MX */ typo
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages. Server outages are not much of a problem, except for outgoing servers that are configured with an unacceptably low retry interval. Some postmasters do so because they think that delayed DSNs are difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.''
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message to be timely delivered from the US to Europe even while the Atlantic link is down.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. They are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen.
== Alternatives and requirements ==
The [[solution proposed]] for forwarding may somewhat lend itself for also doing backup MXes. That scenario implies that a backup MX has implicit [[forwarding recipe]]s for all users to all more preferred servers in the domain being backed up. The backup server would still have to negotiate a [[forwarding agreement]] in each case where a message actually has to go through for the first time. (Existing recipes are to be searched before implicit ones.)
A cute trick to initialize the system so that it doesn't have to reply 4xx codes until agreements are finalized, which is likely to happen if the primary host is down, is to provide a list of hashed email addresses. That way, a backup MX may check that a given address actually exists, and accept it, being confident that the primary server will accept it in turn. The forwarding agreement will be negotiated when the primary (or a more preferred secondary) comes up. That circumstance more or less coincides with the moment when the cleartext address corresponding to the hashed entry becomes known at the server. Since provisions for accepting forwarding agreements from a backup MX should have been set up already at the primary's, we can regard as substantially irrelevant the short period of time while the first message for a given address remains stored in the backup MX's cache. (During that time, the server knows the email address without being bound by an agreement.)
Besides the list of hashes, the ''initialization data'', may contain regular expressions to account for subaddresses, prefixes, catch-all's, honeypots, etcetera. More meta data may be needed. Provisions to periodically refresh the initialization data are also needed. Changes in the DNS that add or remove MXes, or just change preferences, have to be dealt with.
End users should not be able to delete their forwarding agreement at a backup MX, unless they also delete their mailbox at the primary MX. Blocking such agreements, i.e. leaving an existing recipe in place while configuring it to reply ''551 User not local'', may result in some disruption and noncompliance. Such blocking may be disallowed by domain policies. At any rate, privacy concerned users will gain the ability to retrieve the effective list of servers where their email addresses are stored (a somewhat idealistic wish, until some marketing function will say otherwise.)
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
* The [http://www.imc.org/ietf-smtp/mail-archive/msg05696.html ietf-smtp thread] that inspired this page
* [[wp:MX record#The backup MX]]
a27811e673def845ae4c07fe82348e4ff2c5f0f1
1531
1530
2009-05-25T08:51:38Z
Ale
1
/* Why have a backup MX */ add John Klensin's notes
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages. Server outages are not much of a problem, except for outgoing servers that are configured with an unacceptably low retry interval. Some postmasters do so because they think that delayed DSNs are difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.''
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message to be timely delivered from the US to Europe even while the Atlantic link is down.
A third reason for setting up a "backup MX" is to explicitly acquire connectivity even when no outage disrupts normal operations. For example, the target host is on Mars and can be accessed, easily and normally, by other Martian hosts. However,
for a host on Earth, the target host will rarely be
reachable via a normal TCP/SMTP connection and the
intermediate MX host may have the needed delay-tolerant
machinery installed.
In any case, SMTP provides for a default for transferring mail from the backup MX to the target host. That is not a requirement, though. LMTP (RFC 2033), UUCP (RFC 976), or any any other mutually-acceptable transport mechanism may do.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. They are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen.
== Alternatives and requirements ==
The [[solution proposed]] for forwarding may somewhat lend itself for also doing backup MXes. That scenario implies that a backup MX has implicit [[forwarding recipe]]s for all users to all more preferred servers in the domain being backed up. The backup server would still have to negotiate a [[forwarding agreement]] in each case where a message actually has to go through for the first time. (Existing recipes are to be searched before implicit ones.)
A cute trick to initialize the system so that it doesn't have to reply 4xx codes until agreements are finalized, which is likely to happen if the primary host is down, is to provide a list of hashed email addresses. That way, a backup MX may check that a given address actually exists, and accept it, being confident that the primary server will accept it in turn. The forwarding agreement will be negotiated when the primary (or a more preferred secondary) comes up. That circumstance more or less coincides with the moment when the cleartext address corresponding to the hashed entry becomes known at the server. Since provisions for accepting forwarding agreements from a backup MX should have been set up already at the primary's, we can regard as substantially irrelevant the short period of time while the first message for a given address remains stored in the backup MX's cache. (During that time, the server knows the email address without being bound by an agreement.)
Besides the list of hashes, the ''initialization data'', may contain regular expressions to account for subaddresses, prefixes, catch-all's, honeypots, etcetera. More meta data may be needed. Provisions to periodically refresh the initialization data are also needed. Changes in the DNS that add or remove MXes, or just change preferences, have to be dealt with.
End users should not be able to delete their forwarding agreement at a backup MX, unless they also delete their mailbox at the primary MX. Blocking such agreements, i.e. leaving an existing recipe in place while configuring it to reply ''551 User not local'', may result in some disruption and noncompliance. Such blocking may be disallowed by domain policies. At any rate, privacy concerned users will gain the ability to retrieve the effective list of servers where their email addresses are stored (a somewhat idealistic wish, until some marketing function will say otherwise.)
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
* The [http://www.imc.org/ietf-smtp/mail-archive/msg05696.html ietf-smtp thread] that inspired this page
* [[wp:MX record#The backup MX]]
bb89926858dfcc7baf0c25289fc8dcc22040ebac
1556
1531
2010-09-24T08:33:48Z
Ale
1
/* Why have a backup MX */ expand slightly
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages.
Server outages are a problem also for retrieving mail, via IMAP or POP. It may make sense to run a backup MX in case backup hosts are available for retrieving mail, in a fault-tolerant infrastructure. Minor annoyance may result from non-compliant transmitters that are configured with an unacceptably low retry interval. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.'' A few postmasters configure much shorter intervals, perhaps because they think that delayed DSNs are difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days.
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message to be timely delivered from the US to Europe even while the Atlantic link is down.
A third reason for setting up a "backup MX" is to explicitly acquire connectivity even when no outage disrupts normal operations. For example, the target host is on Mars and can be accessed, easily and normally, by other Martian hosts. However,
for a host on Earth, the target host will rarely be
reachable via a normal TCP/SMTP connection and the
intermediate MX host may have the needed delay-tolerant
machinery installed<ref>John Klensin, [http://www.imc.org/ietf-smtp/mail-archive/msg05713.html ietf-smtp.imc.org], Sat, 23 May 2009 11:10:48 -0400</ref>
On the Earth, a more common example is provided by (large) enterprises who operate dedicated boundary servers as their MX platforms, and handle final delivery by an entirely different set of servers often totally invisible to the outside user.<ref>Malcolm Weir, [http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg35222.html courier-users], Wed, 22 Sep 2010 16:00:19 -0700</ref>
In any case, SMTP provides for a default for transferring mail from the backup MX to the target host. That is not a requirement, though. LMTP (RFC 2033), UUCP (RFC 976), or any any other mutually-acceptable transport mechanism may do.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. They are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen.
== Alternatives and requirements ==
The [[solution proposed]] for forwarding may somewhat lend itself for also doing backup MXes. That scenario implies that a backup MX has implicit [[forwarding recipe]]s for all users to all more preferred servers in the domain being backed up. The backup server would still have to negotiate a [[forwarding agreement]] in each case where a message actually has to go through for the first time. (Existing recipes are to be searched before implicit ones.)
A cute trick to initialize the system so that it doesn't have to reply 4xx codes until agreements are finalized, which is likely to happen if the primary host is down, is to provide a list of hashed email addresses. That way, a backup MX may check that a given address actually exists, and accept it, being confident that the primary server will accept it in turn. The forwarding agreement will be negotiated when the primary (or a more preferred secondary) comes up. That circumstance more or less coincides with the moment when the cleartext address corresponding to the hashed entry becomes known at the server. Since provisions for accepting forwarding agreements from a backup MX should have been set up already at the primary's, we can regard as substantially irrelevant the short period of time while the first message for a given address remains stored in the backup MX's cache. (During that time, the server knows the email address without being bound by an agreement.)
Besides the list of hashes, the ''initialization data'', may contain regular expressions to account for subaddresses, prefixes, catch-all's, honeypots, etcetera. More meta data may be needed. Provisions to periodically refresh the initialization data are also needed. Changes in the DNS that add or remove MXes, or just change preferences, have to be dealt with.
End users should not be able to delete their forwarding agreement at a backup MX, unless they also delete their mailbox at the primary MX. Blocking such agreements, i.e. leaving an existing recipe in place while configuring it to reply ''551 User not local'', may result in some disruption and noncompliance. Such blocking may be disallowed by domain policies. At any rate, privacy concerned users will gain the ability to retrieve the effective list of servers where their email addresses are stored (a somewhat idealistic wish, until some marketing function will say otherwise.)
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
* The [http://www.imc.org/ietf-smtp/mail-archive/msg05696.html ietf-smtp thread] that inspired this page
* [[wp:MX record#The backup MX]]
ca6b5c2820315074d4cadd068a2bb2cab4214c5a
1557
1556
2010-09-24T08:34:34Z
Ale
1
/* See also */ add references
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages.
Server outages are a problem also for retrieving mail, via IMAP or POP. It may make sense to run a backup MX in case backup hosts are available for retrieving mail, in a fault-tolerant infrastructure. Minor annoyance may result from non-compliant transmitters that are configured with an unacceptably low retry interval. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.'' A few postmasters configure much shorter intervals, perhaps because they think that delayed DSNs are difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days.
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message to be timely delivered from the US to Europe even while the Atlantic link is down.
A third reason for setting up a "backup MX" is to explicitly acquire connectivity even when no outage disrupts normal operations. For example, the target host is on Mars and can be accessed, easily and normally, by other Martian hosts. However,
for a host on Earth, the target host will rarely be
reachable via a normal TCP/SMTP connection and the
intermediate MX host may have the needed delay-tolerant
machinery installed<ref>John Klensin, [http://www.imc.org/ietf-smtp/mail-archive/msg05713.html ietf-smtp.imc.org], Sat, 23 May 2009 11:10:48 -0400</ref>
On the Earth, a more common example is provided by (large) enterprises who operate dedicated boundary servers as their MX platforms, and handle final delivery by an entirely different set of servers often totally invisible to the outside user.<ref>Malcolm Weir, [http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg35222.html courier-users], Wed, 22 Sep 2010 16:00:19 -0700</ref>
In any case, SMTP provides for a default for transferring mail from the backup MX to the target host. That is not a requirement, though. LMTP (RFC 2033), UUCP (RFC 976), or any any other mutually-acceptable transport mechanism may do.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. They are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen.
== Alternatives and requirements ==
The [[solution proposed]] for forwarding may somewhat lend itself for also doing backup MXes. That scenario implies that a backup MX has implicit [[forwarding recipe]]s for all users to all more preferred servers in the domain being backed up. The backup server would still have to negotiate a [[forwarding agreement]] in each case where a message actually has to go through for the first time. (Existing recipes are to be searched before implicit ones.)
A cute trick to initialize the system so that it doesn't have to reply 4xx codes until agreements are finalized, which is likely to happen if the primary host is down, is to provide a list of hashed email addresses. That way, a backup MX may check that a given address actually exists, and accept it, being confident that the primary server will accept it in turn. The forwarding agreement will be negotiated when the primary (or a more preferred secondary) comes up. That circumstance more or less coincides with the moment when the cleartext address corresponding to the hashed entry becomes known at the server. Since provisions for accepting forwarding agreements from a backup MX should have been set up already at the primary's, we can regard as substantially irrelevant the short period of time while the first message for a given address remains stored in the backup MX's cache. (During that time, the server knows the email address without being bound by an agreement.)
Besides the list of hashes, the ''initialization data'', may contain regular expressions to account for subaddresses, prefixes, catch-all's, honeypots, etcetera. More meta data may be needed. Provisions to periodically refresh the initialization data are also needed. Changes in the DNS that add or remove MXes, or just change preferences, have to be dealt with.
End users should not be able to delete their forwarding agreement at a backup MX, unless they also delete their mailbox at the primary MX. Blocking such agreements, i.e. leaving an existing recipe in place while configuring it to reply ''551 User not local'', may result in some disruption and noncompliance. Such blocking may be disallowed by domain policies. At any rate, privacy concerned users will gain the ability to retrieve the effective list of servers where their email addresses are stored (a somewhat idealistic wish, until some marketing function will say otherwise.)
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
* The [http://www.imc.org/ietf-smtp/mail-archive/msg05696.html ietf-smtp thread] that inspired this page
* [[wp:MX record#The backup MX]]
== References ==
<references/>
b3e0b50780cbc21f7bbdcf3c4cb53b2bc4f3c076
1558
1557
2010-09-24T09:27:53Z
Ale
1
/* Why not to have a backup MX */ mention solar flares
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages.
Server outages are a problem also for retrieving mail, via IMAP or POP. It may make sense to run a backup MX in case backup hosts are available for retrieving mail, in a fault-tolerant infrastructure. Minor annoyance may result from non-compliant transmitters that are configured with an unacceptably low retry interval. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.'' A few postmasters configure much shorter intervals, perhaps because they think that delayed DSNs are difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days.
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message to be timely delivered from the US to Europe even while the Atlantic link is down.
A third reason for setting up a "backup MX" is to explicitly acquire connectivity even when no outage disrupts normal operations. For example, the target host is on Mars and can be accessed, easily and normally, by other Martian hosts. However,
for a host on Earth, the target host will rarely be
reachable via a normal TCP/SMTP connection and the
intermediate MX host may have the needed delay-tolerant
machinery installed<ref>John Klensin, [http://www.imc.org/ietf-smtp/mail-archive/msg05713.html ietf-smtp.imc.org], Sat, 23 May 2009 11:10:48 -0400</ref>
On the Earth, a more common example is provided by (large) enterprises who operate dedicated boundary servers as their MX platforms, and handle final delivery by an entirely different set of servers often totally invisible to the outside user.<ref>Malcolm Weir, [http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg35222.html courier-users], Wed, 22 Sep 2010 16:00:19 -0700</ref>
In any case, SMTP provides for a default for transferring mail from the backup MX to the target host. That is not a requirement, though. LMTP (RFC 2033), UUCP (RFC 976), or any any other mutually-acceptable transport mechanism may do.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. They are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen, e.g. because of solar flares<ref>[http://www.nasa.gov/topics/solarsystem/features/spaceweather_hazard.html NASA-Funded Study Reveals Hazards of Severe Space Weather] 1 May 2009</ref>.
== Alternatives and requirements ==
The [[solution proposed]] for forwarding may somewhat lend itself for also doing backup MXes. That scenario implies that a backup MX has implicit [[forwarding recipe]]s for all users to all more preferred servers in the domain being backed up. The backup server would still have to negotiate a [[forwarding agreement]] in each case where a message actually has to go through for the first time. (Existing recipes are to be searched before implicit ones.)
A cute trick to initialize the system so that it doesn't have to reply 4xx codes until agreements are finalized, which is likely to happen if the primary host is down, is to provide a list of hashed email addresses. That way, a backup MX may check that a given address actually exists, and accept it, being confident that the primary server will accept it in turn. The forwarding agreement will be negotiated when the primary (or a more preferred secondary) comes up. That circumstance more or less coincides with the moment when the cleartext address corresponding to the hashed entry becomes known at the server. Since provisions for accepting forwarding agreements from a backup MX should have been set up already at the primary's, we can regard as substantially irrelevant the short period of time while the first message for a given address remains stored in the backup MX's cache. (During that time, the server knows the email address without being bound by an agreement.)
Besides the list of hashes, the ''initialization data'', may contain regular expressions to account for subaddresses, prefixes, catch-all's, honeypots, etcetera. More meta data may be needed. Provisions to periodically refresh the initialization data are also needed. Changes in the DNS that add or remove MXes, or just change preferences, have to be dealt with.
End users should not be able to delete their forwarding agreement at a backup MX, unless they also delete their mailbox at the primary MX. Blocking such agreements, i.e. leaving an existing recipe in place while configuring it to reply ''551 User not local'', may result in some disruption and noncompliance. Such blocking may be disallowed by domain policies. At any rate, privacy concerned users will gain the ability to retrieve the effective list of servers where their email addresses are stored (a somewhat idealistic wish, until some marketing function will say otherwise.)
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
* The [http://www.imc.org/ietf-smtp/mail-archive/msg05696.html ietf-smtp thread] that inspired this page
* [[wp:MX record#The backup MX]]
== References ==
<references/>
1cc10814f042ee56abe71cdcc74d3e9b60beaaa1
File:Forward.png
6
28
1536
2009-10-28T18:46:16Z
Ale
1
Simple forwarding illustration
wikitext
text/x-wiki
Simple forwarding illustration
dc6bc7bd5244f041e7545a75f9c2a9d2c3cd3721
File:Normal-delivery.png
6
29
1537
2009-10-28T18:52:11Z
Ale
1
Normal (direct) message delivery
wikitext
text/x-wiki
Normal (direct) message delivery
6ac2668319c3de4434d4e286bb769c08c9112d81
File:Backup-mx.png
6
30
1538
2009-10-28T18:52:48Z
Ale
1
Backup MX delivery mechanism
wikitext
text/x-wiki
Backup MX delivery mechanism
f551dacfe709a94cb4d7c5f50131f6f96fc151ed
File:List.png
6
31
1539
2009-10-28T18:53:44Z
Ale
1
Depiction of mailing list explosion
wikitext
text/x-wiki
Depiction of mailing list explosion
a466183c544dda5eca4119c8fb71a2c761f06018
standard behavior
0
32
1540
2009-10-28T19:10:15Z
Ale
1
page creation (to be completed with images)
wikitext
text/x-wiki
'''Standard behavior''' accounts for simple store and forward mechanisms that have been devised long before privacy regulations. Here we describe the most usual patterns that a message may go through.
==Direct personal message==
[[File:Normal-delivery.png|300px|thumb|left|Normal delivery]] The normal delivery image is displayed to introduce the concept of a ''Message Submission Agent'' (MSA), a.k.a. outgoing mail server, which collects a message from an author, determines the destination server and sends the message to it. The recipient will find the message in the INBOX.
<br style="clear:both" />
==External forwarding==
==Mailing lists and newsletter==
==External backup MX==
af8c815161d379cddbb7d153055e96729ac5efb8
1541
1540
2009-10-29T18:32:28Z
Ale
1
add remaining illustrations and text
wikitext
text/x-wiki
'''Standard behavior''' accounts for simple store and forward mechanisms that have been devised long before privacy regulations. Here we describe the most usual patterns that a message may go through, highlighting the problem of managing personal data (a.k.a. personally identifiable data.)
==Direct personal message==
[[File:Normal-delivery.png|300px|thumb|left|Normal delivery]] The normal delivery image is displayed to introduce the concept of an '''MSA''' (''Message Submission Agent'', a.k.a. outgoing mail server) which collects a message from a sender, determines the relevant destination server, and sends the message there, where the recipient will find it.
It is assumed that users have an agreement with the mail domain that serve their addresses. That's implicit in the format ''<recipient@domain>'' of email addresses.
<br style="clear:both" />
==External forwarding==
[[File:Forward.png|300px|thumb|left|Forwarding to a different mail domain]] The original destination <u>''rcpt@domain''</u> is replaced with <u>''rcpt@other-domain''</u> by the <u>forwarding server</u>. The new address is someone's personal data, and its owner deserves full access to it.
We call this ''external'' to distinguish it from role accounts, e.g. ''sales@domain'' and similar forwarding of messages within the same server or mail domain. While for internal forwarding we may assume adequate agreements between users and their mail domains, external organizations require their own agreements. We are not much interested in formal pieces of paper, but rather in the effective ability of users to control how their addresses are used.
Vanity domains' email addresses solely exist for forwarding. In most such cases, they feature full blown web applications that allow users to control their addresses. However, simple ''.forward'' files do not. They are part of the recommended procedure for changing email address, which may well be considered a necessary part of the mail system.
<br style="clear:both" />
==Newsletters and announcements==
[[File:List.png|300px|thumb|left|Newsletters and mailing lists]] Newsletters are the long established case where privacy rules get broken. Technically, they are the same as mailing lists. However, the semantics is very different. Most mailing list are very respectful of privacy: they require explicit user's subscription, which is double checked so that it is really difficult to subscribe someone else, and they regularly send unsubscribe instructions. Newsletters and single announcements are a means for advertising something, and only in a few cases they collect subscriptions regularly.
Senders submit the message to the list exploder for <u>''list@domain''</u>. That is, they don't manually type addresses, nor select them from public directories, for each message they send. Rather, they maintain a database from which destination addresses can be extracted by the exploder using convenient criteria. Users shall be able to access the data records that concern them. However, seeking users' confirmation by sending them an email message upon insertion is grotesque, since message-sending is not yet confirmed.
Senders' requirement is to build those databases. In several cases, sending organizations lack the prestige, fame, and reputation for enticing users to subscribe spontaneously, and thus collect addresses in various ways. We are not much interested in ''how'' addresses are collected. However, there is a precise moment when an address is made available to an exploder, with given extraction criteria. An agreement with the subject must be sought after that moment, and before any message that matches those criteria is actually sent. Thus, automating this kind of agreement is apparently the kind of solution we seek.
<br style="clear:both" />
==External backup MX==
[[File:Backup-mx.png|300px|thumb|left|Primary mail exchanger is unreachable, message is delivered through a backup MX]] It used to be rather common to have ''external'' backup MXes. These were machines configured to accept mail for a different domain, without being able to state the validity of its addresses. They were only used when the main (or primary) server experienced a network outage, and only kept any messages in a local queue until it became possible to deliver them.
Nowadays, organizations that operate on a single network have given up using backup MXes. Until networks work reliably, they are not needed. Old-style backup MXes accept messages destined to ''non-existent@domain'', and attempt to send them to the main server, with embarrassing behavior about delivery status notifications. Larger organizations distribute their users' data so that any server can determine whether a mailbox exists. If they are distributed evenly around the globe, their mail systems may work even in case solar flares tamper with telecommunications.
This problem has a common facet with that of newsletters. Assume a backup MX has been fed with a hashed list of addresses; that is, it can compute a one-way hash of any address so as to determine whether it is listed, without knowing them all. That can be set up at a third party's server without requiring special interaction with each subject, although proper notification is appropriate. When the backup MX learns of the existence of one of those addresses --after a positive lookup--it moves it from the hashed list and makes it available on a cleartext one: on performing such operation, it is in the same condition of a newsletter exploder acquiring a new address, therefore it can solve the problem by the same means.
<br style="clear:both" />
b99f889da49621db6ee14e36d93b503099dca65d
1543
1541
2009-10-31T11:10:34Z
Ale
1
add footnotes
wikitext
text/x-wiki
'''Standard behavior''' accounts for simple store and forward mechanisms that have been devised long before privacy regulations. Here we describe the most usual patterns that a message may go through, highlighting the problem of managing personal data (a.k.a. personally identifiable data.)
==Direct personal message==
[[File:Normal-delivery.png|300px|thumb|left|Normal delivery]] The normal delivery image is displayed to introduce the concept of an '''MSA''' (''Message Submission Agent'', a.k.a. outgoing mail server) which collects a message from a sender, determines the relevant destination server, and sends the message there, where the recipient will find it.
It is assumed that users have an agreement with the mail domain that serve their addresses. That's implicit in the format ''<recipient@domain>'' of email addresses.
<br style="clear:both" />
==External forwarding==
[[File:Forward.png|300px|thumb|left|Forwarding to a different mail domain]] The original destination <u>''rcpt@domain''</u> is replaced with <u>''rcpt@other-domain''</u> by the <u>forwarding server</u>. The new address is someone's personal data, and its owner deserves full access to it.
We call this ''external'' to distinguish it from role accounts, e.g. ''sales@domain'' and similar forwarding of messages within the same server or mail domain. While for internal forwarding we may assume adequate agreements between users and their mail domains, external organizations require their own agreements. We are not much interested in formal pieces of paper, but rather in the effective ability of users to control how their addresses are used.
Vanity domains' email addresses solely exist for forwarding. In most such cases, they feature full blown web applications that allow users to control their addresses. However, simple ''.forward'' files do not<ref>In a classical setting, ''.forward'' files live in users' home directories, and hence are under their complete control. Most current mail servers, however, work with ''virtual users'', an arrangement that allows better management and is safer for server's security. Access to ''.forward'' files is an oversight originating from the fact that the fundamental principle, that email addresses shall be under the complete control of their owners, although respected, was never made explicit in SMTP</ref>. They are part of the recommended procedure for changing email address, which may well be considered a necessary part of the mail system.
<br style="clear:both" />
==Newsletters and announcements==
[[File:List.png|300px|thumb|left|Newsletters and mailing lists]] Newsletters are the long established case where privacy rules get broken. Technically, they are the same as mailing lists. However, the semantics is very different. Most mailing list are very respectful of privacy: they require explicit user's subscription, which is double checked so that it is really difficult to subscribe someone else, and they regularly send unsubscribe instructions. Newsletters and single announcements are a means for advertising something, and only in a few cases they collect subscriptions regularly.
Senders submit the message to the list exploder for <u>''list@domain''</u>. That is, they don't manually type addresses, nor select them from public directories, for each message they send. Rather, they maintain a database from which destination addresses can be extracted by the exploder using convenient criteria. Users shall be able to access the data records that concern them. However, seeking users' confirmation by sending them an email message upon insertion is grotesque, since message-sending is not yet confirmed.
Senders' requirement is to build those databases. In several cases, sending organizations lack the prestige, fame, and reputation for enticing users to subscribe spontaneously, and thus collect addresses in various ways. We are not much interested in ''how'' addresses are collected. However, there is a precise moment when an address is made available to an exploder, with given extraction criteria. An agreement with the subject must be sought after that moment, and before any message that matches those criteria is actually sent. Thus, automating this kind of agreement is apparently the kind of solution we seek.
<br style="clear:both" />
==External backup MX==
[[File:Backup-mx.png|300px|thumb|left|Primary mail exchanger is unreachable, message is delivered through a backup MX]] It used to be rather common to have ''external'' backup MXes. These were machines configured to accept mail for a different domain, without being able to state the validity of its addresses. They were only used when the main (or primary) server experienced a network outage, and only kept any messages in a local queue until it became possible to deliver them.
Nowadays, organizations that operate on a single network have given up using backup MXes. Until networks work reliably, they are not needed. Old-style backup MXes accept messages destined to ''non-existent@domain'', and attempt to send them to the main server, with embarrassing behavior about delivery status notifications. Larger organizations distribute their users' data so that any server can determine whether a mailbox exists. If they are distributed evenly around the globe, their mail systems may work even in case solar flares tamper with telecommunications.
This problem has a common facet with that of newsletters. Assume a backup MX has been fed with a hashed list of addresses; that is, it can compute a one-way hash of any address so as to determine whether it is listed, without knowing them all. That can be set up at a third party's server without requiring special interaction with each subject, although proper notification is appropriate. When the backup MX learns of the existence of one of those addresses --after a positive lookup--it moves it from the hashed list and makes it available on a cleartext one: on performing such operation, it is in the same condition of a newsletter exploder acquiring a new address, therefore it can solve the problem by the same means.
<br style="clear:both" />
==Footnotes==
<references/>
fff8fd3a2481531578a28677f3fba72abfe700f7
1544
1543
2009-10-31T12:00:38Z
Ale
1
/* Newsletters and announcements */
wikitext
text/x-wiki
'''Standard behavior''' accounts for simple store and forward mechanisms that have been devised long before privacy regulations. Here we describe the most usual patterns that a message may go through, highlighting the problem of managing personal data (a.k.a. personally identifiable data.)
==Direct personal message==
[[File:Normal-delivery.png|300px|thumb|left|Normal delivery]] The normal delivery image is displayed to introduce the concept of an '''MSA''' (''Message Submission Agent'', a.k.a. outgoing mail server) which collects a message from a sender, determines the relevant destination server, and sends the message there, where the recipient will find it.
It is assumed that users have an agreement with the mail domain that serve their addresses. That's implicit in the format ''<recipient@domain>'' of email addresses.
<br style="clear:both" />
==External forwarding==
[[File:Forward.png|300px|thumb|left|Forwarding to a different mail domain]] The original destination <u>''rcpt@domain''</u> is replaced with <u>''rcpt@other-domain''</u> by the <u>forwarding server</u>. The new address is someone's personal data, and its owner deserves full access to it.
We call this ''external'' to distinguish it from role accounts, e.g. ''sales@domain'' and similar forwarding of messages within the same server or mail domain. While for internal forwarding we may assume adequate agreements between users and their mail domains, external organizations require their own agreements. We are not much interested in formal pieces of paper, but rather in the effective ability of users to control how their addresses are used.
Vanity domains' email addresses solely exist for forwarding. In most such cases, they feature full blown web applications that allow users to control their addresses. However, simple ''.forward'' files do not<ref>In a classical setting, ''.forward'' files live in users' home directories, and hence are under their complete control. Most current mail servers, however, work with ''virtual users'', an arrangement that allows better management and is safer for server's security. Access to ''.forward'' files is an oversight originating from the fact that the fundamental principle, that email addresses shall be under the complete control of their owners, although respected, was never made explicit in SMTP</ref>. They are part of the recommended procedure for changing email address, which may well be considered a necessary part of the mail system.
<br style="clear:both" />
==Newsletters and announcements==
[[File:List.png|300px|thumb|left|Newsletters and mailing lists]] Newsletters are the long established case where privacy rules get broken. Technically, they are the same as mailing lists. However, the semantics is very different. Most mailing list are very respectful of privacy: they require explicit user's subscription, which is double checked so that it is really difficult to subscribe someone else, and they regularly send unsubscribe instructions. Newsletters and single announcements are a means for advertising something, and only in a few cases they collect subscriptions regularly.
Senders submit the message to the list exploder for <u>''list@domain''</u>. That is, they don't manually type addresses, nor select them from public directories, for each message they send. Rather, they maintain a database from which destination addresses can be extracted by the exploder using convenient criteria. Users shall be able to access the data records that concern them. However, seeking users' confirmation by sending them an email message upon insertion is grotesque, since message-sending is not yet confirmed.
Senders' requirement is to build those databases. In several cases, sending organizations lack the prestige, fame, and reputation for enticing users to subscribe spontaneously, and thus collect addresses in various ways. We are not much interested in ''how'' addresses are collected. However, there is a precise moment when an address is made available to an exploder, with given extraction criteria. An agreement with the subject must be sought after that moment, and before any message that matches those criteria is actually sent. Thus, automating this kind of agreement is apparently the kind of solution we seek.<ref>Users might configure their preferences, on their mail servers, specifying what they wish to do for a [[forwarding agreement]] proposal that makes their mailbox the target of a given message or series of messages. For example, they might specify, for any category of message, whether they wish to automatically deny or accept the agreement, and how they'd like to be notified of this fact. Categories of messages might be defined by means of ''Solicitation-keywords'', as defined in RFC 3865.</ref>
<br style="clear:both" />
==External backup MX==
[[File:Backup-mx.png|300px|thumb|left|Primary mail exchanger is unreachable, message is delivered through a backup MX]] It used to be rather common to have ''external'' backup MXes. These were machines configured to accept mail for a different domain, without being able to state the validity of its addresses. They were only used when the main (or primary) server experienced a network outage, and only kept any messages in a local queue until it became possible to deliver them.
Nowadays, organizations that operate on a single network have given up using backup MXes. Until networks work reliably, they are not needed. Old-style backup MXes accept messages destined to ''non-existent@domain'', and attempt to send them to the main server, with embarrassing behavior about delivery status notifications. Larger organizations distribute their users' data so that any server can determine whether a mailbox exists. If they are distributed evenly around the globe, their mail systems may work even in case solar flares tamper with telecommunications.
This problem has a common facet with that of newsletters. Assume a backup MX has been fed with a hashed list of addresses; that is, it can compute a one-way hash of any address so as to determine whether it is listed, without knowing them all. That can be set up at a third party's server without requiring special interaction with each subject, although proper notification is appropriate. When the backup MX learns of the existence of one of those addresses --after a positive lookup--it moves it from the hashed list and makes it available on a cleartext one: on performing such operation, it is in the same condition of a newsletter exploder acquiring a new address, therefore it can solve the problem by the same means.
<br style="clear:both" />
==Footnotes==
<references/>
881c473c464ddf65ac3203c0bbded847382fb633
1545
1544
2009-11-11T18:43:53Z
Ale
1
/* Direct personal message */ explain simplified labels
wikitext
text/x-wiki
'''Standard behavior''' accounts for simple store and forward mechanisms that have been devised long before privacy regulations. Here we describe the most usual patterns that a message may go through, highlighting the problem of managing personal data (a.k.a. personally identifiable data.)
==Direct personal message==
[[File:Normal-delivery.png|300px|thumb|left|Normal delivery]] The normal delivery image is displayed to introduce the concepts of '''MSA''' (''Message Submission Agent'', a.k.a. outgoing mail server) and '''MX''' (''Mail eXchanger''). All servers are labeled according to the first role they play along the illustrated message path. For example, the MSA also acts as a transmitter, as it determines the relevant destination server, and sends the message there.
It is assumed that users have an agreement with the mail domain that serves their addresses. That's implicit in the format ''<recipient@domain>'' of email addresses.
<br style="clear:both" />
==External forwarding==
[[File:Forward.png|300px|thumb|left|Forwarding to a different mail domain]] The original destination <u>''rcpt@domain''</u> is replaced with <u>''rcpt@other-domain''</u> by the <u>forwarding server</u>. The new address is someone's personal data, and its owner deserves full access to it.
We call this ''external'' to distinguish it from role accounts, e.g. ''sales@domain'' and similar forwarding of messages within the same server or mail domain. While for internal forwarding we may assume adequate agreements between users and their mail domains, external organizations require their own agreements. We are not much interested in formal pieces of paper, but rather in the effective ability of users to control how their addresses are used.
Vanity domains' email addresses solely exist for forwarding. In most such cases, they feature full blown web applications that allow users to control their addresses. However, simple ''.forward'' files do not<ref>In a classical setting, ''.forward'' files live in users' home directories, and hence are under their complete control. Most current mail servers, however, work with ''virtual users'', an arrangement that allows better management and is safer for server's security. Access to ''.forward'' files is an oversight originating from the fact that the fundamental principle, that email addresses shall be under the complete control of their owners, although respected, was never made explicit in SMTP</ref>. They are part of the recommended procedure for changing email address, which may well be considered a necessary part of the mail system.
<br style="clear:both" />
==Newsletters and announcements==
[[File:List.png|300px|thumb|left|Newsletters and mailing lists]] Newsletters are the long established case where privacy rules get broken. Technically, they are the same as mailing lists. However, the semantics is very different. Most mailing list are very respectful of privacy: they require explicit user's subscription, which is double checked so that it is really difficult to subscribe someone else, and they regularly send unsubscribe instructions. Newsletters and single announcements are a means for advertising something, and only in a few cases they collect subscriptions regularly.
Senders submit the message to the list exploder for <u>''list@domain''</u>. That is, they don't manually type addresses, nor select them from public directories, for each message they send. Rather, they maintain a database from which destination addresses can be extracted by the exploder using convenient criteria. Users shall be able to access the data records that concern them. However, seeking users' confirmation by sending them an email message upon insertion is grotesque, since message-sending is not yet confirmed.
Senders' requirement is to build those databases. In several cases, sending organizations lack the prestige, fame, and reputation for enticing users to subscribe spontaneously, and thus collect addresses in various ways. We are not much interested in ''how'' addresses are collected. However, there is a precise moment when an address is made available to an exploder, with given extraction criteria. An agreement with the subject must be sought after that moment, and before any message that matches those criteria is actually sent. Thus, automating this kind of agreement is apparently the kind of solution we seek.<ref>Users might configure their preferences, on their mail servers, specifying what they wish to do for a [[forwarding agreement]] proposal that makes their mailbox the target of a given message or series of messages. For example, they might specify, for any category of message, whether they wish to automatically deny or accept the agreement, and how they'd like to be notified of this fact. Categories of messages might be defined by means of ''Solicitation-keywords'', as defined in RFC 3865.</ref>
<br style="clear:both" />
==External backup MX==
[[File:Backup-mx.png|300px|thumb|left|Primary mail exchanger is unreachable, message is delivered through a backup MX]] It used to be rather common to have ''external'' backup MXes. These were machines configured to accept mail for a different domain, without being able to state the validity of its addresses. They were only used when the main (or primary) server experienced a network outage, and only kept any messages in a local queue until it became possible to deliver them.
Nowadays, organizations that operate on a single network have given up using backup MXes. Until networks work reliably, they are not needed. Old-style backup MXes accept messages destined to ''non-existent@domain'', and attempt to send them to the main server, with embarrassing behavior about delivery status notifications. Larger organizations distribute their users' data so that any server can determine whether a mailbox exists. If they are distributed evenly around the globe, their mail systems may work even in case solar flares tamper with telecommunications.
This problem has a common facet with that of newsletters. Assume a backup MX has been fed with a hashed list of addresses; that is, it can compute a one-way hash of any address so as to determine whether it is listed, without knowing them all. That can be set up at a third party's server without requiring special interaction with each subject, although proper notification is appropriate. When the backup MX learns of the existence of one of those addresses --after a positive lookup--it moves it from the hashed list and makes it available on a cleartext one: on performing such operation, it is in the same condition of a newsletter exploder acquiring a new address, therefore it can solve the problem by the same means.
<br style="clear:both" />
==Footnotes==
<references/>
c1dd97ff95554a2f2407fc05604e81fe105b33c7
1546
1545
2010-07-17T16:22:35Z
Ale
1
rephrase, add conclusions
wikitext
text/x-wiki
'''Standard behavior''' illustrates email simple store and forward mechanisms, that have been devised long before privacy regulations. Here we describe the most usual patterns that a message may go through, highlighting the problem of managing personal data, a.k.a. personally identifiable data.
Except for the first case, direct delivering, ''store and forward'' involves multiple parties, and thereby involves privacy concerns.
==Direct personal message==
[[File:Normal-delivery.png|300px|thumb|left|Normal delivery]] Normal delivery accounts for the majority of messages. The illustration introduces the concepts of '''MSA''' (''Message Submission Agent'', a.k.a. outgoing mail server) and '''MX''' (''Mail eXchanger'', a.k.a. incoming mail server). All servers are labeled according to the first role they play along the illustrated message path. For example, the MSA also acts as a transmitter, as it determines the relevant destination server, and sends the message there.
The very format ''<recipient@domain>'' of email addresses implies there is an agreement between a recipient and the domain. It is assumed that such agreements cover any privacy concern.
<br style="clear:both" />
==External forwarding==
[[File:Forward.png|300px|thumb|left|Forwarding to a different mail domain]] The original destination <u>''rcpt@domain''</u> is replaced with <u>''rcpt@other-domain''</u> by the <u>forwarding server</u>. The new address is someone's personal data, and its owner deserves full access to it.
We call this ''external'' to distinguish it from role accounts, e.g. ''sales@domain'' and similar forwarding of messages within the same server or mail domain. While for internal forwarding we may assume adequate agreements between users and their mail domains, external organizations require their own agreements. We are not much interested in formal pieces of paper, but rather in the effective ability of users to control how their addresses are used.
Vanity domains' email addresses solely exist for forwarding. In most such cases, they feature full blown web applications that allow users to control their addresses. However, simple ''.forward'' files do not<ref>In a classical setting, ''.forward'' files live in users' home directories, and hence are under their complete control. Most current mail servers, however, work with ''virtual users'', an arrangement that allows better management and is safer for server's security. Access to ''.forward'' files is an oversight originating from the fact that the fundamental principle, that email addresses shall be under the complete control of their owners, although respected, was never made explicit in SMTP</ref>. They are part of the recommended procedure for changing email address, which may well be considered a necessary part of the mail system.
<br style="clear:both" />
==Newsletters and announcements==
[[File:List.png|300px|thumb|left|Newsletters and mailing lists]] Newsletters are the long established case where privacy rules get broken. Technically, they are the same as mailing lists. However, the semantics is very different. Most mailing list are very respectful of privacy: they require explicit user's subscription, which is double checked so that it is really difficult to subscribe someone else, and they regularly send unsubscribe instructions. Newsletters and single announcements are a means for advertising something, and only in a few cases they collect subscriptions regularly.
Authors submit the message to the list exploder for <u>''list@domain''</u>. That is, they don't manually type addresses, nor select them from public directories, for each message they send. Rather, they maintain a database from which destination addresses can be extracted by the exploder using convenient criteria. Users shall be able to access the data records that concern them. However, seeking users' confirmation by sending them an email message upon insertion is grotesque, since message-sending is not yet confirmed.
Senders' requirement is to build those databases. In several cases, sending organizations lack the prestige, fame, and reputation for enticing users to subscribe spontaneously, and thus collect addresses in various ways. We are not much interested in ''how'' addresses are collected. However, there is a precise moment when an address is made available to an exploder, with given extraction criteria, a.k.a. profiles. An agreement with the subject must be sought after that moment, and before any message that matches those criteria is actually sent. Thus, automating this kind of agreement is apparently the kind of solution we seek.<ref>Users might configure their preferences, on their mail servers, specifying what they wish to do for a [[forwarding agreement]] proposal that makes their mailbox the target of a given message or series of messages. For example, they might specify, for any category of message, whether they wish to automatically deny or accept the agreement, and how they'd like to be notified of this fact. Categories of messages might be defined by means of ''Solicitation-keywords'', as defined in RFC 3865.</ref>
<br style="clear:both" />
==External backup MX==
[[File:Backup-mx.png|300px|thumb|left|Primary mail exchanger is unreachable, message is delivered through a backup MX]] It used to be rather common to have ''external'' backup MXes. These were machines configured to accept mail for a different domain, without being able to state the validity of its addresses. They should only be used when the main (or primary) server experiences a network outage.
Nowadays, organizations that operate on a single network have given up using backup MXes. Until networks work reliably, they are not needed. Old-style backup MXes accept messages destined to ''non-existent@domain'', and attempt to send them to the main server, with embarrassing behavior about delivery status notifications. Larger organizations distribute their users' data so that any server can determine whether a mailbox exists. If they are distributed evenly around the globe, their mail systems may work even in case solar flares tamper with telecommunications.
Backup MXes operated by 3rd parties pose a problem that has a common facet with that of newsletters. Assume a backup MX has been fed with a hashed list of addresses; that is, it can compute a one-way hash of any address so as to determine whether it is listed. Since addresses are hidden, such feed doesn't require special interaction with each subject, although proper notification is appropriate. When the backup MX learns of the existence of one of those addresses --after a positive lookup-- it moves it from the hashed list and makes it available on a cleartext one: on performing such operation, it is in the same condition of a newsletter exploder acquiring a new address, therefore it can solve the problem by the same means.
<br style="clear:both" />
==Conclusions==
Getting into an agreement would not be a tough procedure if there is a standard way to automate it. The [[solution proposed]] provides for procedures to automatically negotiate agreements, and manage the required passwords for ''SMTP Authentication''. As a result, MX servers will have lists of effective agreements, that they can put in the hands of the corresponding subjects.
==Footnotes==
<references/>
dc66c0730901e01102a1b60abcc5f6a63acae572
Main Page
0
1
1542
1464
2009-10-29T18:45:57Z
Ale
1
Add executive summary
wikitext
text/x-wiki
'''This web site''' is dedicated to the analysis of current forwarding practices and a possible solution that is compliant with privacy rules. An implementation will hopefully be proposed at a further time.
== The problem ==
Our [[standard behavior]] page gives an executive summary of current mail forwarding mechanisms, highlighting where the problem occurs. A rather technical definition of [[forwarding]] is also given.
Savage forwarding produces quite some shortcomings:
* Recipients have no means to directly control the forwarding mechanism.
* Responsibility for injecting spam becomes ambiguous.
* Bounces may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
== The solution: Standardize forwarding practices ==
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
2f435ed3707ebc33183084984b03471fd2b1f9ce
FixForwarding:Terms of Service
4
36
1555
2010-07-21T18:05:17Z
Ale
1
Create page
wikitext
text/x-wiki
FixForwarding.org welcomes any contribution that improves this wiki. However, in order to avoid spam, anonymous editing is disabled and creation of new accounts requires confirmation.
== Account Requests ==
Please choose an non-existing ''Username'' and a valid email address. You'll have to confirm it by email before I'll get a notice about your request.
Your real name and a "biography" of at least a couple of words are also required. Whatever you write as biography will become your ''User:'' page, linked from the ''Page hystory'' of any page you'll write. Possibly, repeat your real name there.
Anything you write is subject to [[FixForwarding:Copyrights]].
35ffa1bce3925a310f82db6627371aecfe98696d
forwarding agreement
0
11
1559
1552
2010-10-17T12:58:44Z
Ale
1
/* category */
wikitext
text/x-wiki
A '''forwarding agreement''' is the procedural data that matches a [[forwarding recipe]]. It contains an agreement-ID and a password, the forwarder-ID, the category, the user-IDs, the URL where the agreement can be renegotiated, and a policy. In addition, a forwarding agreement implies that the relevant forwarding recipe exists at the forwarder's and its policy matches the one in the agreement.
== Doubly linked vs. singly linked lists ==
Introducing forwarding agreements is the major point of the solution designed in this site. Current forwarding practices resemble what is known in programming as a ''singly linked list''. Forwarding agreements transform that into a ''doubly linked list''. (See [[wp:Linked list]].)
== Data fields ==
=== agreement-ID ===
The ''agreement-ID'' may be the remote alias name, the list-id, or the newsletter name. It is the name associated with the password for SMTP Authentication. For static recipes with a single recipient, this may coincide with the recipient's user-ID if deemed useful for saving a db lookup.
=== forwarder-ID ===
The ''forwarder-ID'' identifies the forwarder as an entity, organization, or individual. Identifying who is the forwarder is the main criterion for quickly granting agreements. In addition, when sending multiple messages in the same session a forwarder may change agreement-ID by using the AUTH parameter to the MAIL FROM command, if both agreement-IDs share the same forwarder-ID.
=== category ===
An agreement may be established for different scenarios that imply forwarding, as described in section 3.9 of RFC 5321, ''Mailing Lists and Aliases''. The ''category'' identifies what type of forwarding recipe corresponds to the agreement. The recipe can be ''static'', i.e. manually edited configuration data, or dynamic. A tentative list of categories is as follows:
* single recipient static,
* multiple recipient static,
* mailing list,
* newsletter,
* backup MX.
Sometimes static recipes can be edited using web forms or other remote mechanisms. The key difference is that static recipes allow a single user with enough permissions to edit multiple addresses at once, e.g. by providing a comma separated list. Dynamic recipes allow to independently add/delete single addresses without even letting the relevant user know whether there are more addresses on the list.
Mailing lists have a time-honored mechanism to subscribe/unsubscribe by email, web form management has been added on top of that, and the software designed to manage forwarding agreements may act compliantly. Any list that is not, strictly speaking, a ''mailing list'', is a newsletter.
The category is not supposed to change during an agreement's life-cycle, thus some of the above distinctions may be dropped.
=== user-ID ===
The ''user-ID'' identifies the local recipient(s) to whom forwarding is granted. Even if database orthogonalization is used, agreements are counted according to their multiplicity.
''URL'' and ''policy'' are described below.
== Establishing a forwarding agreement ==
The sender has to know that it is [[forwarding]] a message. This may not be obvious in case of static forwarding recipes. That can be done by tweaking the envelope sender specified in the ''-f'' command switch as described [[forwarding recipe#Envelope sender tweak|here]].
An MX server who accepts forwarding agreements shall advertise it on the EHLO response, providing an URL for starting the agreement setup.
=== Triple handshake ===
#When forwarders visit the advertised URL, they post the URL where the policy may be negotiated.
#Upon receiving that data, the server in turn visits the supplied URL and negotiates the policy. A successful negotiation will conclude with a token for visiting yet another URL, for setting the password.
#If the previous step concluded successfully, the forwarder can now visit the completion URL and set a password for the specific account.
At any step, either party may interrupt the automated process and require human intervention. In certain conditions, e.g. when the recipient already knows the sender, the process should conclude rather quickly; an SMTP implementation may run the above procedure on the fly when it realizes that an agreement is missing.
=== URLs ===
All URLs involved in managing forwarding agreement shall obey the same basic protocols. Unlike URLs mentioned in, say, RFC 2369, the behavior of each URL type shall be fully specified, so that the process can be carried out without human intervention. (To say that human intervention is not necessary does not imply that it is not possible, see below.)
For the time being, let's assume that each URL serves SOAP or REST request/response pages under HTTPS transport. An advantage of using an existing framework is that it avoids having to specify any encoding, multiple lines syntax, and similar kind of stuff; experience published about NETCONF can be used as a guideline, see RFC 5381. Lisa does not like SOAP[http://nih.blogspot.com/2008/09/ive-been-asked-lot-about-use-of-soap-in.html], REST looks simpler[http://blog.feedly.com/2009/03/03/jsonrest-vs-xmlsoap/]. (See also [http://www.ietf.org/proceedings/07dec/slides/xmltut-1.pdf Using XML in Internet Protocols].) HTTPS as a transport allows secure password exchange; in addition, the certificate and its signing authority can be taken into account when deciding to grant the agreement (but see also [[policy negotiation URL#Credentials and cryptographic support|Credentials and cryptographic support]].) SOAP has further security options and WS-* features, but for the time being they don't seem necessary.
We define the following URLs:
* the [[EHLO advertised URL]],
* the [[policy negotiation URL]] at the forwarder's, and
* the [[completion URL]].
The first and last ones are served by the target MTA.
== Using and maintaining agreements ==
An MX server needs a database to store its agreements. Besides dedicated web procedures, the SMTP server software will consult the database for authenticating logins. Ad-hoc RCPT filters will check that the authenticated (or current) agreement-ID is granted permission for each recipient. Either all MXes in a given domain share the same database, or single hosts or groups of hosts maintain their own copies. In the latter case, they must advertise different EHLO URLs.
Note that the user-ID address given in the agreement may well be an alias. Mailbox owners may want to browse what forwarding agreements exist for their addresses. Thus, it is useful to have an owner to user-ID index to find all involved aliases. The policy negotiation URL at the sender's must be capable of serving similar queries: given a user-ID it must find in its local databases all aliases that deliver to the given mailbox, which is then forwarded, along with any granted agreement. That way it is possible to recursively browse all the mail addresses that eventually result in mail arriving to a given target mailbox. The implementation must be quite tightly integrated in the mail server software, accounting for postmasters who manually edit forwarding recipes.
The primary negotiation that a forwarder must grant is to terminate the agreement and hence stop that forwarding. Alternatively, static recipes may be disabled causing the relevant server to supply responses like
<pre>
551 User not local; please try <forward-path>
</pre>
It is the users' right to require complete deletion of all of their data at a given place. Using this scheme also for mailing lists would provide a unified way to unsubscribe.
== Policy considerations ==
For ''static'' agreements, the policy shall prescribe what [[boundary filter]]s the forwarder (i.e. the sender w.r.t the agreement, when it acted as a recipient of the forwarded message) enforces for a specific recipient.
For newsletters and mailing lists, the policy may store additional data related to the opt-in operation, e.g. the GMT date and public IP a web request came from.
The sender may be exempted from DNSBL checks. SPF checks should never be done for forwarded messages.
Depending on the SASL mechanism being used with SMTP Authentication, the password may have to be changed more or less often.
In addition, the [[forwarding recipe]] policy must be matched.
e63acc8d3628d4d5e4230339d6ca47574f8f6c64
Main Page
0
1
1560
1542
2011-08-02T18:18:03Z
Ale
1
rewrite
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on the ''list exploder''. Rather than typing addresses, or retrieving them interactively from a personal or public address book, the sender sends to a ''pseudo-mailbox'' that the list exploder will use to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best replacement to email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify each of them,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses, and
* better anti-spam filtering by whitelisting legitimate messages.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
6fdf3e49bd07ac3e80319395a04740eb360ea1bd
1561
1560
2011-08-02T18:25:30Z
Ale
1
/* The problem */ add detection of illegal disclosures
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on the ''list exploder''. Rather than typing addresses, or retrieving them interactively from a personal or public address book, the sender sends to a ''pseudo-mailbox'' that the list exploder will use to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best replacement to email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify each of them,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses, and
* better anti-spam filtering by whitelisting legitimate messages.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
ecdf23564a3730804421109f3319e61e51173474
1562
1561
2011-08-02T18:27:32Z
Ale
1
/* A consent-exchange Internet protocol for email users */
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on the ''list exploder''. Rather than typing addresses, or retrieving them interactively from a personal or public address book, the sender sends to a ''pseudo-mailbox'' that the list exploder will use to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best replacement to email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regard the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify each of them,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses, and
* better anti-spam filtering by whitelisting legitimate messages.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
1c89d87add7a619b9e4b79cc2435e2473cc48fd3
1563
1562
2011-08-02T18:29:48Z
Ale
1
/* A consent-exchange Internet protocol for email users */
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on the ''list exploder''. Rather than typing addresses, or retrieving them interactively from a personal or public address book, the sender sends to a ''pseudo-mailbox'' that the list exploder will use to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best replacement to email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify each of them,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses, and
* better anti-spam filtering by whitelisting legitimate messages.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
6f3ea86772c97b5c0f307bd57f3bab794aaac68d
1564
1563
2011-08-02T18:32:31Z
Ale
1
/* The problem */
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify each of them,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses, and
* better anti-spam filtering by whitelisting legitimate messages.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
7cd67ca982f996aa80a799b2b0cdb84b4468392f
1566
1564
2011-11-16T12:18:57Z
Ale
1
/* Anti-spam effect */ new section
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify each of them,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses, and
* better anti-spam filtering by whitelisting legitimate messages.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
f5b79be3084468def877e07fee5f2d4da80d9ade
1567
1566
2011-11-25T09:58:11Z
Ale
1
add Rationale section
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off.
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify each of them,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses, and
* better anti-spam filtering by whitelisting legitimate messages.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
c8cd105d77b862cb7d75dda075337498c8dc9fde
1568
1567
2011-12-08T18:38:24Z
Ale
1
/* Rationale */ mention the Information Age
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify each of them,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses, and
* better anti-spam filtering by whitelisting legitimate messages.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
27b3b49d5fbfdba270c4739df10473d631c9525b
1569
1568
2011-12-08T20:06:09Z
Ale
1
/* A consent-exchange Internet protocol for email users */
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
af98f999b22673222daf41b4b3e53956a9859209
1570
1569
2011-12-08T20:14:22Z
Ale
1
/* The problem */ inequitably hindered as 1st bullet
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
0d46ee0fee4c78e3803e3850e17e03468a62b80c
1571
1570
2011-12-26T11:13:44Z
Ale
1
/* Triple Opt-In */ new section
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a refinement of double opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to interact with each other. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
7a937e5dab1bcebae08e510ddc8b77d1422e68a5
1572
1571
2011-12-26T11:29:32Z
Ale
1
/* Triple Opt-In */
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to interact with each other. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
33eb2062556f654220d6660fa058f36ce2097ff6
1573
1572
2011-12-26T11:31:37Z
Ale
1
/* Triple Opt-In */
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
96f0313e3bd605b33dc5300a9fbfe9cf9e696b39
1575
1573
2012-12-11T11:11:52Z
Ale
1
/* The problem */ typo
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
0065eb5872c8d17d83a1737de9da1dbe76cf9992
1581
1575
2013-04-22T13:40:55Z
Ale
1
/* The problem */ eIAS as a method to acquire consent?
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
Update: data subject's consent could by acquired by means of a ''trust service provider'' according to [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=COM:2012:0238:FIN:EN:HTML eIAS proposal] and [http://ameliaandersdotter.eu/eid-and-trust-services-regulation/ amendment] thereof.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
f83228efde4411f66dc206e457540168bd744b5e
1582
1581
2013-12-17T14:40:47Z
Ale
1
/* Triple Opt-In */ Criticism
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
Update: data subject's consent could by acquired by means of a ''trust service provider'' according to [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=COM:2012:0238:FIN:EN:HTML eIAS proposal] and [http://ameliaandersdotter.eu/eid-and-trust-services-regulation/ amendment] thereof.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
395a806141b5e761ccc9cf43c4c2a9f99d1a1408
1594
1582
2014-04-26T09:57:50Z
Ale
1
/* DNS declaration of mailing list */ new section
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the premise for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
Update: data subject's consent could by acquired by means of a ''trust service provider'' according to [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=COM:2012:0238:FIN:EN:HTML eIAS proposal] and [http://ameliaandersdotter.eu/eid-and-trust-services-regulation/ amendment] thereof.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
5d33060beedd3c5210bcb299f843e721fec5058f
1595
1594
2017-12-01T12:07:23Z
Ale
1
/* Rationale */ s/premise/precondition/
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby dishonoring any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
Update: data subject's consent could by acquired by means of a ''trust service provider'' according to [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=COM:2012:0238:FIN:EN:HTML eIAS proposal] and [http://ameliaandersdotter.eu/eid-and-trust-services-regulation/ amendment] thereof.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
189ecbbe9aac70650450c95a8d96e718fb4e9c02
1596
1595
2017-12-01T12:11:25Z
Ale
1
/* The problem */ s/dishonoring/betraying/
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
Update: data subject's consent could by acquired by means of a ''trust service provider'' according to [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=COM:2012:0238:FIN:EN:HTML eIAS proposal] and [http://ameliaandersdotter.eu/eid-and-trust-services-regulation/ amendment] thereof.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
b33fbf6a9c64380ed7454be6673b36bcb71296a1
1597
1596
2017-12-01T12:58:12Z
Ale
1
/* The problem */ change eIDAS links
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
There is an EU regulation, [[wp:eIDAS]], a standard developed for transactions in the EU single market. It can be considered a sort of S/MIME extension; that is, it features centralized key management -the main difference w.r.t. the PGP suite. That way, data subject's consent could by acquired by means of a ''trust service provider'' according to regulation. A statement like this would be consistent with law-regulated privacy protection.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
8f738a73cbebaf3960556582c03e34ea0fc45d12
1598
1597
2018-03-14T17:34:31Z
Ale
1
/* A consent-exchange Internet protocol for email users */ update 2018
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
There is an EU regulation, [[wp:eIDAS]], a standard developed for transactions in the EU single market. It can be considered a sort of S/MIME extension; that is, it features centralized key management -the main difference w.r.t. the PGP suite. That way, data subject's consent could by acquired by means of a ''trust service provider'' according to regulation. A statement like this would be consistent with law-regulated privacy protection.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' is a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
=== Update 2018 ===
The new [http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 REGULATION 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL] of 27 April 2016, article 68, states (my enhancing):
<blockquote>
To further strengthen the control over his or her own data, where the processing of personal data is carried out by automated means, the data subject should also be allowed to receive personal data concerning him or her which he or she has provided to a controller in a structured, commonly used, machine-readable and interoperable format, and to transmit it to another controller. '''Data controllers should be encouraged to develop interoperable formats that enable data portability.''' That right should apply where the data subject provided the personal data on the basis of his or her consent or the processing is necessary for the performance of a contract. It should not apply where processing is based on a legal ground other than consent or contract. By its very nature, that right should not be exercised against controllers processing personal data in the exercise of their public duties. It should therefore not apply where the processing of the personal data is necessary for compliance with a legal obligation to which the controller is subject or for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller. The data subject's right to transmit or receive personal data concerning him or her should not create an obligation for the controllers to adopt or maintain processing systems which are technically compatible. Where, in a certain set of personal data, more than one data subject is concerned, the right to receive the personal data should be without prejudice to the rights and freedoms of other data subjects in accordance with this Regulation. Furthermore, that right should not prejudice the right of the data subject to obtain the erasure of personal data and the limitations of that right as set out in this Regulation and should, in particular, not imply the erasure of personal data concerning the data subject which have been provided by him or her for the performance of a contract to the extent that and for as long as the personal data are necessary for the performance of that contract. Where technically feasible, the data subject should have the right to have the personal data transmitted directly from one controller to another.
</blockquote>
Besides all the limitations intended to safeguard data controllers, it clearly calls for such a standard.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
7a5d21b71647063507842fe2d265e915d488faec
1599
1598
2019-08-27T14:43:25Z
Ale
1
/* Triple Opt-In */ is->would be
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
There is an EU regulation, [[wp:eIDAS]], a standard developed for transactions in the EU single market. It can be considered a sort of S/MIME extension; that is, it features centralized key management -the main difference w.r.t. the PGP suite. That way, data subject's consent could by acquired by means of a ''trust service provider'' according to regulation. A statement like this would be consistent with law-regulated privacy protection.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' would be a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
=== Update 2018 ===
The new [http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 REGULATION 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL] of 27 April 2016, article 68, states (my enhancing):
<blockquote>
To further strengthen the control over his or her own data, where the processing of personal data is carried out by automated means, the data subject should also be allowed to receive personal data concerning him or her which he or she has provided to a controller in a structured, commonly used, machine-readable and interoperable format, and to transmit it to another controller. '''Data controllers should be encouraged to develop interoperable formats that enable data portability.''' That right should apply where the data subject provided the personal data on the basis of his or her consent or the processing is necessary for the performance of a contract. It should not apply where processing is based on a legal ground other than consent or contract. By its very nature, that right should not be exercised against controllers processing personal data in the exercise of their public duties. It should therefore not apply where the processing of the personal data is necessary for compliance with a legal obligation to which the controller is subject or for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller. The data subject's right to transmit or receive personal data concerning him or her should not create an obligation for the controllers to adopt or maintain processing systems which are technically compatible. Where, in a certain set of personal data, more than one data subject is concerned, the right to receive the personal data should be without prejudice to the rights and freedoms of other data subjects in accordance with this Regulation. Furthermore, that right should not prejudice the right of the data subject to obtain the erasure of personal data and the limitations of that right as set out in this Regulation and should, in particular, not imply the erasure of personal data concerning the data subject which have been provided by him or her for the performance of a contract to the extent that and for as long as the personal data are necessary for the performance of that contract. Where technically feasible, the data subject should have the right to have the personal data transmitted directly from one controller to another.
</blockquote>
Besides all the limitations intended to safeguard data controllers, it clearly calls for such a standard.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
270a0eabd8d5e966aeb5eb9d881736c7081d8d13
1600
1599
2019-08-27T17:39:03Z
Ale
1
/* Criticism */ prepend paragraph on distrust between users an mailbox providers
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
There is an EU regulation, [[wp:eIDAS]], a standard developed for transactions in the EU single market. It can be considered a sort of S/MIME extension; that is, it features centralized key management -the main difference w.r.t. the PGP suite. That way, data subject's consent could by acquired by means of a ''trust service provider'' according to regulation. A statement like this would be consistent with law-regulated privacy protection.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' would be a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
The main reason why that kind of authentication won't come is that it implies a trust between users and their mailbox providers. Such trust may seem to be taken for granted, considering, for example, that forgotten passwords are reset through email. A person's email address has become an identity token. Yet, there are users who hardly cope with having to entrust their communications to a third party suspected of sniffing it, profiling and reselling private data, and worse. Things would be different if the mailbox provider were the server of a household, of a company, a club, or similar associations. In fact, the 'domain-part' of an address used to characterize people. Nowadays, everyone has 'gmail'. There are two reasons for this state of affairs. One is that running a mail server is not so straightforward. The other one is that server connections cost much more than residential ones. Having to put the server at the mercy of an external admin doesn't seem to be much different than letting the external admin manage the mail directly, as far as privacy is concerned.
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
=== Update 2018 ===
The new [http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 REGULATION 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL] of 27 April 2016, article 68, states (my enhancing):
<blockquote>
To further strengthen the control over his or her own data, where the processing of personal data is carried out by automated means, the data subject should also be allowed to receive personal data concerning him or her which he or she has provided to a controller in a structured, commonly used, machine-readable and interoperable format, and to transmit it to another controller. '''Data controllers should be encouraged to develop interoperable formats that enable data portability.''' That right should apply where the data subject provided the personal data on the basis of his or her consent or the processing is necessary for the performance of a contract. It should not apply where processing is based on a legal ground other than consent or contract. By its very nature, that right should not be exercised against controllers processing personal data in the exercise of their public duties. It should therefore not apply where the processing of the personal data is necessary for compliance with a legal obligation to which the controller is subject or for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller. The data subject's right to transmit or receive personal data concerning him or her should not create an obligation for the controllers to adopt or maintain processing systems which are technically compatible. Where, in a certain set of personal data, more than one data subject is concerned, the right to receive the personal data should be without prejudice to the rights and freedoms of other data subjects in accordance with this Regulation. Furthermore, that right should not prejudice the right of the data subject to obtain the erasure of personal data and the limitations of that right as set out in this Regulation and should, in particular, not imply the erasure of personal data concerning the data subject which have been provided by him or her for the performance of a contract to the extent that and for as long as the personal data are necessary for the performance of that contract. Where technically feasible, the data subject should have the right to have the personal data transmitted directly from one controller to another.
</blockquote>
Besides all the limitations intended to safeguard data controllers, it clearly calls for such a standard.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
4401f1f76697f0877614fc5ea72c2916035d747d
1606
1600
2023-03-08T16:20:41Z
Ale
1
/* Papers */ New section for citations
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
There is an EU regulation, [[wp:eIDAS]], a standard developed for transactions in the EU single market. It can be considered a sort of S/MIME extension; that is, it features centralized key management -the main difference w.r.t. the PGP suite. That way, data subject's consent could by acquired by means of a ''trust service provider'' according to regulation. A statement like this would be consistent with law-regulated privacy protection.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' would be a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
The main reason why that kind of authentication won't come is that it implies a trust between users and their mailbox providers. Such trust may seem to be taken for granted, considering, for example, that forgotten passwords are reset through email. A person's email address has become an identity token. Yet, there are users who hardly cope with having to entrust their communications to a third party suspected of sniffing it, profiling and reselling private data, and worse. Things would be different if the mailbox provider were the server of a household, of a company, a club, or similar associations. In fact, the 'domain-part' of an address used to characterize people. Nowadays, everyone has 'gmail'. There are two reasons for this state of affairs. One is that running a mail server is not so straightforward. The other one is that server connections cost much more than residential ones. Having to put the server at the mercy of an external admin doesn't seem to be much different than letting the external admin manage the mail directly, as far as privacy is concerned.
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
=== Update 2018 ===
The new [http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 REGULATION 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL] of 27 April 2016, article 68, states (my enhancing):
<blockquote>
To further strengthen the control over his or her own data, where the processing of personal data is carried out by automated means, the data subject should also be allowed to receive personal data concerning him or her which he or she has provided to a controller in a structured, commonly used, machine-readable and interoperable format, and to transmit it to another controller. '''Data controllers should be encouraged to develop interoperable formats that enable data portability.''' That right should apply where the data subject provided the personal data on the basis of his or her consent or the processing is necessary for the performance of a contract. It should not apply where processing is based on a legal ground other than consent or contract. By its very nature, that right should not be exercised against controllers processing personal data in the exercise of their public duties. It should therefore not apply where the processing of the personal data is necessary for compliance with a legal obligation to which the controller is subject or for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller. The data subject's right to transmit or receive personal data concerning him or her should not create an obligation for the controllers to adopt or maintain processing systems which are technically compatible. Where, in a certain set of personal data, more than one data subject is concerned, the right to receive the personal data should be without prejudice to the rights and freedoms of other data subjects in accordance with this Regulation. Furthermore, that right should not prejudice the right of the data subject to obtain the erasure of personal data and the limitations of that right as set out in this Regulation and should, in particular, not imply the erasure of personal data concerning the data subject which have been provided by him or her for the performance of a contract to the extent that and for as long as the personal data are necessary for the performance of that contract. Where technically feasible, the data subject should have the right to have the personal data transmitted directly from one controller to another.
</blockquote>
Besides all the limitations intended to safeguard data controllers, it clearly calls for such a standard.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
== Papers ==
A nice taxonomy of email forwarding methods and weaknesses thereof, as of 2023, is given by [https://arxiv.org/search/cs?searchtype=author&query=Liu%2C+E Enze Liu] et al. [https://arxiv.org/abs/2302.07287 Forward Pass: On the Security Implications of Email Forwarding Mechanism and Policy].
c713d7c9d1c9c89b7c98710f34c0d35f4036276a
1607
1606
2023-07-06T06:11:31Z
Ale
1
/* Update 2023 */ New subsection
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship. Production and distribution of goods and services is a cooperative effort, and the minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
There is an EU regulation, [[wp:eIDAS]], a standard developed for transactions in the EU single market. It can be considered a sort of S/MIME extension; that is, it features centralized key management -the main difference w.r.t. the PGP suite. That way, data subject's consent could by acquired by means of a ''trust service provider'' according to regulation. A statement like this would be consistent with law-regulated privacy protection.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' would be a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
The main reason why that kind of authentication won't come is that it implies a trust between users and their mailbox providers. Such trust may seem to be taken for granted, considering, for example, that forgotten passwords are reset through email. A person's email address has become an identity token. Yet, there are users who hardly cope with having to entrust their communications to a third party suspected of sniffing it, profiling and reselling private data, and worse. Things would be different if the mailbox provider were the server of a household, of a company, a club, or similar associations. In fact, the 'domain-part' of an address used to characterize people. Nowadays, everyone has 'gmail'. There are two reasons for this state of affairs. One is that running a mail server is not so straightforward. The other one is that server connections cost much more than residential ones. Having to put the server at the mercy of an external admin doesn't seem to be much different than letting the external admin manage the mail directly, as far as privacy is concerned.
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
=== Update 2018 ===
The new [http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 REGULATION 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL] of 27 April 2016, article 68, states (my enhancing):
<blockquote>
To further strengthen the control over his or her own data, where the processing of personal data is carried out by automated means, the data subject should also be allowed to receive personal data concerning him or her which he or she has provided to a controller in a structured, commonly used, machine-readable and interoperable format, and to transmit it to another controller. '''Data controllers should be encouraged to develop interoperable formats that enable data portability.''' That right should apply where the data subject provided the personal data on the basis of his or her consent or the processing is necessary for the performance of a contract. It should not apply where processing is based on a legal ground other than consent or contract. By its very nature, that right should not be exercised against controllers processing personal data in the exercise of their public duties. It should therefore not apply where the processing of the personal data is necessary for compliance with a legal obligation to which the controller is subject or for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller. The data subject's right to transmit or receive personal data concerning him or her should not create an obligation for the controllers to adopt or maintain processing systems which are technically compatible. Where, in a certain set of personal data, more than one data subject is concerned, the right to receive the personal data should be without prejudice to the rights and freedoms of other data subjects in accordance with this Regulation. Furthermore, that right should not prejudice the right of the data subject to obtain the erasure of personal data and the limitations of that right as set out in this Regulation and should, in particular, not imply the erasure of personal data concerning the data subject which have been provided by him or her for the performance of a contract to the extent that and for as long as the personal data are necessary for the performance of that contract. Where technically feasible, the data subject should have the right to have the personal data transmitted directly from one controller to another.
</blockquote>
Besides all the limitations intended to safeguard data controllers, it clearly calls for such a standard.
=== Update 2023 ===
After more thinking, catching both user confirmation to the mailing list and user's mailbox provider consent to pass the mail flow in a single gesture is too much. The protocol shall provided for both points to be done asynchronously.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
== Papers ==
A nice taxonomy of email forwarding methods and weaknesses thereof, as of 2023, is given by [https://arxiv.org/search/cs?searchtype=author&query=Liu%2C+E Enze Liu] et al. [https://arxiv.org/abs/2302.07287 Forward Pass: On the Security Implications of Email Forwarding Mechanism and Policy].
d89425733a093a69831a9885dad86d5615c0c598
1608
1607
2023-10-12T16:13:26Z
Ale
1
/* Rationale */ wording
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship with customers. Production and distribution of goods and services should rather be a symbiotic relationship. The minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk email that characterizes it: the destination addresses are held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system. In most countries, this should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
There is an EU regulation, [[wp:eIDAS]], a standard developed for transactions in the EU single market. It can be considered a sort of S/MIME extension; that is, it features centralized key management -the main difference w.r.t. the PGP suite. That way, data subject's consent could by acquired by means of a ''trust service provider'' according to regulation. A statement like this would be consistent with law-regulated privacy protection.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' would be a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
The main reason why that kind of authentication won't come is that it implies a trust between users and their mailbox providers. Such trust may seem to be taken for granted, considering, for example, that forgotten passwords are reset through email. A person's email address has become an identity token. Yet, there are users who hardly cope with having to entrust their communications to a third party suspected of sniffing it, profiling and reselling private data, and worse. Things would be different if the mailbox provider were the server of a household, of a company, a club, or similar associations. In fact, the 'domain-part' of an address used to characterize people. Nowadays, everyone has 'gmail'. There are two reasons for this state of affairs. One is that running a mail server is not so straightforward. The other one is that server connections cost much more than residential ones. Having to put the server at the mercy of an external admin doesn't seem to be much different than letting the external admin manage the mail directly, as far as privacy is concerned.
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
=== Update 2018 ===
The new [http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 REGULATION 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL] of 27 April 2016, article 68, states (my enhancing):
<blockquote>
To further strengthen the control over his or her own data, where the processing of personal data is carried out by automated means, the data subject should also be allowed to receive personal data concerning him or her which he or she has provided to a controller in a structured, commonly used, machine-readable and interoperable format, and to transmit it to another controller. '''Data controllers should be encouraged to develop interoperable formats that enable data portability.''' That right should apply where the data subject provided the personal data on the basis of his or her consent or the processing is necessary for the performance of a contract. It should not apply where processing is based on a legal ground other than consent or contract. By its very nature, that right should not be exercised against controllers processing personal data in the exercise of their public duties. It should therefore not apply where the processing of the personal data is necessary for compliance with a legal obligation to which the controller is subject or for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller. The data subject's right to transmit or receive personal data concerning him or her should not create an obligation for the controllers to adopt or maintain processing systems which are technically compatible. Where, in a certain set of personal data, more than one data subject is concerned, the right to receive the personal data should be without prejudice to the rights and freedoms of other data subjects in accordance with this Regulation. Furthermore, that right should not prejudice the right of the data subject to obtain the erasure of personal data and the limitations of that right as set out in this Regulation and should, in particular, not imply the erasure of personal data concerning the data subject which have been provided by him or her for the performance of a contract to the extent that and for as long as the personal data are necessary for the performance of that contract. Where technically feasible, the data subject should have the right to have the personal data transmitted directly from one controller to another.
</blockquote>
Besides all the limitations intended to safeguard data controllers, it clearly calls for such a standard.
=== Update 2023 ===
After more thinking, catching both user confirmation to the mailing list and user's mailbox provider consent to pass the mail flow in a single gesture is too much. The protocol shall provided for both points to be done asynchronously.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
== Papers ==
A nice taxonomy of email forwarding methods and weaknesses thereof, as of 2023, is given by [https://arxiv.org/search/cs?searchtype=author&query=Liu%2C+E Enze Liu] et al. [https://arxiv.org/abs/2302.07287 Forward Pass: On the Security Implications of Email Forwarding Mechanism and Policy].
346f2ee769977993c0c021cef82588419feb45bc
1609
1608
2023-10-12T17:08:25Z
Ale
1
/* The problem */ separate the legal conundrum into its own section, consider email authentication and link my draft
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship with customers. Production and distribution of goods and services should rather be a symbiotic relationship. The minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk messages that characterizes email: the destination addresses can be held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system.
[[wp:Email Authentication]] is typically baffled by indirect mail flows. [[wp:Sender Policy Framework|SPF]] breaks forwarding by design. [[wp:DomainKeys Identified Mail|DKIM]] should withstand forwarding. However, occasional alterations or deliberate, legitimate additions break signatures as well. This state of affairs hinders the possibility to use domain authentication as a means to control email abuse. If it were not for forwarding, it would be possible to build reliable reputation systems. That way, authors would have to be responsible for what they send.
A possible mitigation is to pair the email addresses stored on a list exploder with tags stored at the corresponding receivers, so that the latter can categorize indirect mail flows and allow their users to control them. This idea is drafted in [https://datatracker.ietf.org/doc/html/draft-vesely-fix-forwarding Agreements To Fix Forwarding]
== Legal conundrum ==
In most countries, storing personal data on a server should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued.
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
There is an EU regulation, [[wp:eIDAS]], a standard developed for transactions in the EU single market. It can be considered a sort of S/MIME extension; that is, it features centralized key management -the main difference w.r.t. the PGP suite. That way, data subject's consent could by acquired by means of a ''trust service provider'' according to regulation. A statement like this would be consistent with law-regulated privacy protection.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' would be a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
The main reason why that kind of authentication won't come is that it implies a trust between users and their mailbox providers. Such trust may seem to be taken for granted, considering, for example, that forgotten passwords are reset through email. A person's email address has become an identity token. Yet, there are users who hardly cope with having to entrust their communications to a third party suspected of sniffing it, profiling and reselling private data, and worse. Things would be different if the mailbox provider were the server of a household, of a company, a club, or similar associations. In fact, the 'domain-part' of an address used to characterize people. Nowadays, everyone has 'gmail'. There are two reasons for this state of affairs. One is that running a mail server is not so straightforward. The other one is that server connections cost much more than residential ones. Having to put the server at the mercy of an external admin doesn't seem to be much different than letting the external admin manage the mail directly, as far as privacy is concerned.
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
=== Update 2018 ===
The new [http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 REGULATION 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL] of 27 April 2016, article 68, states (my enhancing):
<blockquote>
To further strengthen the control over his or her own data, where the processing of personal data is carried out by automated means, the data subject should also be allowed to receive personal data concerning him or her which he or she has provided to a controller in a structured, commonly used, machine-readable and interoperable format, and to transmit it to another controller. '''Data controllers should be encouraged to develop interoperable formats that enable data portability.''' That right should apply where the data subject provided the personal data on the basis of his or her consent or the processing is necessary for the performance of a contract. It should not apply where processing is based on a legal ground other than consent or contract. By its very nature, that right should not be exercised against controllers processing personal data in the exercise of their public duties. It should therefore not apply where the processing of the personal data is necessary for compliance with a legal obligation to which the controller is subject or for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller. The data subject's right to transmit or receive personal data concerning him or her should not create an obligation for the controllers to adopt or maintain processing systems which are technically compatible. Where, in a certain set of personal data, more than one data subject is concerned, the right to receive the personal data should be without prejudice to the rights and freedoms of other data subjects in accordance with this Regulation. Furthermore, that right should not prejudice the right of the data subject to obtain the erasure of personal data and the limitations of that right as set out in this Regulation and should, in particular, not imply the erasure of personal data concerning the data subject which have been provided by him or her for the performance of a contract to the extent that and for as long as the personal data are necessary for the performance of that contract. Where technically feasible, the data subject should have the right to have the personal data transmitted directly from one controller to another.
</blockquote>
Besides all the limitations intended to safeguard data controllers, it clearly calls for such a standard.
=== Update 2023 ===
After more thinking, catching both user confirmation to the mailing list and user's mailbox provider consent to pass the mail flow in a single gesture is too much. The protocol shall provided for both points to be done asynchronously.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
== Papers ==
A nice taxonomy of email forwarding methods and weaknesses thereof, as of 2023, is given by [https://arxiv.org/search/cs?searchtype=author&query=Liu%2C+E Enze Liu] et al. [https://arxiv.org/abs/2302.07287 Forward Pass: On the Security Implications of Email Forwarding Mechanism and Policy].
68eeae01291b919f2ef805aacda1c1ddd0b58d7f
solution proposed
0
16
1565
1475
2011-09-17T15:54:25Z
Ale
1
/* Summary */ mention other possibilities beyond SMTP AUTH
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Summary ==
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements, matching one-to-one with the corresponding elements at the senders' alias expansion lists.
There are other possibilities, beyond SMTP AUTH. For example,
* the server might use an opaque email address, e.g. ''user-12345@domain'', that is given to that sender only, or
* the sender may sign mail using DKIM, in case the authorization is intended to cover ''any'' message that the signing domain may send.
Agreements are classified into different categories, e.g., static ''.forward'' files, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. However, it is also possible to require human inspection as desired. Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
This model of forwarding can be triggered by means of a local tweak and a light SMTP extension. The tweak on the sender side consists of a local encoding of the envelope sender that lets the sending software know that a message is being forwarded, and provides a parameter for either negotiating an agreement or using an existing one. This has to be enabled by setting the ''-f'' command switch accordingly, for each recipe. The tweaked envelope sender only lives locally, i.e. on the relevant host or ADMD. The extension on the receiver side is an EHLO keyword to let the sending software know that the specific MX being contacted is also willing to use forwarding agreements.
The negotiation required to establish a forwarding agreement can be quite complicate, especially for the first agreement between two organizations. It provides for a three-way handshake during which the servers exchange the relevant credentials and URLs required to re-negotiate the agreement. By contrast, normal use of an existing agreement is very cheap: the sender finds the id/password pair in a local database, and the remote MX authenticates it normally.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the negotiation handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The ''ff'' idea arose in a discussion originated on the spf-discuss list in January 2008[http://www.listbox.com/member/archive/735/2008/01/sort/thread_rev/page/1/entry/11:265/20080131110008:4871D6CE-D015-11DC-8216-54C5B46F41FF/]. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG[http://www.nabble.com/Yet-another-attempt-to-fix-forwarding-td15177052.html] and Courier-users[http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg30908.html] mailing lists, where it just originated more or less (respectively) responses on SPF/SRS topics only. The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born.
404d62ea47671ae652536b2df7f9c91939cdb64b
1574
1565
2012-01-25T13:01:32Z
Ale
1
/* Summary */ converted in Requirements + Verification
wikitext
text/x-wiki
The '''solution proposed''' by this site aims at fixing email [[forwarding]] by introducing [[forwarding agreement]]s as a counterpart of [[forwarding recipe]]s.
== Requirements ==
Agreements are classified into different categories, e.g., static ''dot-forward'' files, newsletters, mailing lists. An agreement is required for each target user and for each subscription. For example, if sender A runs one mailing list and two newsletters, and two users at receiver B subscribe to all of them, then B will store six agreements for A, just like A has six recipes for B.
Agreements may be obtained in a fully automated fashion. That means that a compliant sender can find out whether the target MTA supports this solution and automatically convert a to it in case. However, it must also be possible to require human inspection as desired.
Agreements may be renegotiated by the end user at any time. Renegotiation and queries by users are always fully automatic and (where applicable) recursive. Agreement negotiation may include arrangements and settings for DNSBL lookups, SPF checks, feedback loops.
This model of forwarding can be triggered by means of a local tweak and a light SMTP extension. The tweak on the sender side consists of a local encoding of the envelope sender that lets the sending software know that a message is being forwarded, and provides a parameter for either negotiating an agreement or using an existing one. This has to be enabled by setting the ''-f'' command switch accordingly, for each recipe. The tweaked envelope sender only lives locally, i.e. on the relevant host or ADMD. The extension on the receiver side is an EHLO keyword to let the sending software know that the specific MX being contacted is also willing to use forwarding agreements.
The negotiation required to establish a forwarding agreement could be quite demanding, especially for the first agreement between two organizations. <!-- It provides for a three-way handshake during which the servers exchange the relevant credentials and URLs required to re-negotiate the agreement. By contrast, normal use of an existing agreement is very cheap: the sender finds the id/password pair in a local database, and the remote MX authenticates it normally.-->
== Verification ==
Here are two methods to verify that a message is being forwarded legitimately by a compliant sender.
=== DKIM / SPF authentication plus unique addresses ===
* The server generates a unique opaque email address, e.g. ''user-12345@domain'', that is given to that sender only, and
* the sender authenticates with DKIM and/or SPF, referring which agreement it is using either in the envelope (as a new SMTP parameter) or in the message (in a header field such as List-Id).
Using Base32 encoding for the variant part allows for enough addresses to connect each pair of individuals in the world, since the local-part can be up to 64 chars long.
The sender has to be trusted for referencing the correct agreement.
=== SMPT AUTH ===
By negotiating a ''forwarding agreement'', a sender obtains an SMTP AUTH id/password pair that it can use to relay messages destined to a given user on the relevant server. The receiver maintains a list of agreements, matching one-to-one with the corresponding elements at the senders' alias expansion lists.
An MTA has to be able to not grant relaying rights to this kind of authenticated senders, while still using authentication (in Submission servers) as usual for local users.
SMTP AUTH allows senders to change hat for each message being sent during a given session. This has to be implemented by the receiving MTA, so that the same entity can act upon different agreements at the same server. Again, the sender has to be trusted for this.
== Pluses ==
This solution attempts to impose some order in the ''real and extensive diversity of email transfer scenarios'', as Dave Crocker describes it[http://www.irtf.org/pipermail/asrg/2008-December/004192.html].
=== Anti-Spam effects ===
The major effect of this solution against spam consists in enabling [[boundary filter]]s. Some of those filters, in turn, don't aim at countering spam directly. SPF, for example, provides for anti-forgery, with the idea that forcing spammers to use their ''real'' domain names would confront them with their responsibilities.
A second effect is to improve legal stances. The usual definition of spam, "unsolicited bulk email", does not distinguish spammers who use false identities and zombies, thereby breaking ''criminal laws'', from those who don't respect opt-in rules or similar ''civil law'' issues. For the latter, forwarding agreements constitute a means to verify opt-ins, thereby providing a further incentive for legitimate bulk mailers to behave correctly.
=== Unified unsubscribe ===
The data gathered with each agreement can be easily made available to UIs aiming at enumerating users subscriptions, possibly recursively. Agreements can be presented in historical order and/or by category, allowing users to change preferences and unsubscribe.
Rather than hitting "report spam" buttons on a per-message basis, users could target the whole series of messages that arrived under a given agreement. Such semantic shift may help to disambiguate an attempt to report that a single message is spam, not the newsletter it belongs to.
== Minuses ==
Managing agreements is an additional burden. Are we ready?
=== False security ===
Automatically stipulated agreements are not bullet proof. Questionable senders may sneak in and send messages that formally look like having passed through SMTP AUTH. Although it may actually be easier for a server to monitor messages grouping them by ''forwarder-id'' rather than (or in addition to) IP address, downstream software may erroneously assume that ''Received'' or ''Authentication-Results'' headers exhibiting smpt.auth data imply a well identified sender.
=== Easy attack path ===
Since receiving hosts promise to skip some boundary checks for forwarded messages, spammers may just use a zombie and an easily obtained TLS certificate to stipulate forwarding agreements. Then they can send spam more easily to those hosts. If it is too easy to obtain an agreement, this solution won't work. However, it is possible to invest more time and precautions during the negotiation handshake than it would for single messages: that's the challenge hereby proposed.
== History ==
The ''ff'' idea arose in a discussion originated on the spf-discuss list in January 2008[http://www.listbox.com/member/archive/735/2008/01/sort/thread_rev/page/1/entry/11:265/20080131110008:4871D6CE-D015-11DC-8216-54C5B46F41FF/]. In the same period, a wishful attempt has also been made to describe it within a single message on the ASRG[http://www.nabble.com/Yet-another-attempt-to-fix-forwarding-td15177052.html] and Courier-users[http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg30908.html] mailing lists, where it just originated more or less (respectively) responses on SPF/SRS topics only. The idea itself is not ''very'' complicated, but it has to be described gradually. Thus this site born.
0a5ffffb6ddc1d1467ebdafeae46835de2697c95
File:mailflows-0.png
6
37
1576
2013-02-13T09:44:01Z
Ale
1
The mail flows as originally designed by Patrik Fältström.
wikitext
text/x-wiki
The mail flows as originally designed by Patrik Fältström.
73dc955ce3b27ccc46fcc3f7b983122b0ab0bca8
File:mailflows-1.png
6
38
1577
2013-02-13T09:45:57Z
Ale
1
The mail flows as published by openspf.org
wikitext
text/x-wiki
The mail flows as published by openspf.org
8ca9e2d6edf52364a13559a5d58db0f1e2584cf7
mail flows
0
39
1578
2013-02-13T10:37:02Z
Ale
1
Create a page with links to the original pdf (cannot upload to Wikimedia because of unknown copyright)
wikitext
text/x-wiki
Here are the '''mail flows''' pictures. Links to pdf files are provided.
==Original==
[[File:mailflows-0.png|frame|none|The original design by Patrik Fältström. <span style="float: right;">[{{SERVER}}/mailflows-0.pdf pdf]</span>]]
==Revised==
[[File:mailflows-1.png|frame|none|The revised version, unknown author. <span style="float: right;">[{{SERVER}}/mailflows-1.pdf pdf]</span>]]
c88b5aabfa1b53a624e1cc79b3f290e187151167
1579
1578
2013-02-13T13:22:46Z
Ale
1
link to wikipedia
wikitext
text/x-wiki
Here are the '''mail flows''' pictures. Links to pdf files are provided.
==Original==
[[File:mailflows-0.png|frame|none|The original design by Patrik Fältström. <span style="float: right;">[{{SERVER}}/mailflows-0.pdf pdf]</span>]]
==Revised==
[[File:mailflows-1.png|frame|none|The revised version, unknown author. <span style="float: right;">[{{SERVER}}/mailflows-1.pdf pdf]</span>]]
A derivative is used to illustrate [[wp:Email authentication]]
19299174c6363f10ef81c59b0d66a4b2beba0391
1580
1579
2013-02-13T13:49:25Z
Ale
1
more links
wikitext
text/x-wiki
Here are the '''mail flows''' pictures. Links to pdf files are provided.
==Original==
[[File:mailflows-0.png|frame|none|The original design by Patrik Fältström. <span style="float: right;">[{{SERVER}}/mailflows-0.pdf pdf]</span>]]
==Revised==
[[File:mailflows-1.png|frame|none|The revised version, unknown author. <span style="float: right;">[{{SERVER}}/mailflows-1.pdf pdf]</span>]]
==More links==
A derivative of those figures is used to illustrate [[wp:Email authentication]].
Patrik presented the underlying analysis at the [http://www.ripe.net/ripe/meetings/ripe-meetings/ripe-47/presentations RIPE47 EOF], January 2004, with these [http://meetings.ripe.net/ripe-47/presentations/ripe47-eof-spam.pdf slides], and at the [http://csrc.nist.gov/spam/ SPAM Technology Workshop], February 2004, with these [http://csrc.nist.gov/spam/paf.pdf slides].
f064992d7f529be80fcfee597eb51948369e3bbf
Water tight opt-in
0
40
1583
2013-12-17T15:00:37Z
Ale
1
New page
wikitext
text/x-wiki
'''Water tight opt-in''' is one such that the three parties involved —sender, receiver, and user— can manage subscriptions.
==Web subscription form==
Web subscription forms would be changed from a single-step "enter your email to subscribe" to a two-step "enter your mail domain" + "enter your local-part".
An additional ''method'' input can let the user decide what action should be taken. Otherwise, if the user enters no at-sign (@) it can be assumed that the value given is a domain. Receiving software usually checks whether the domain has an <code>MX</code> record. In addition, it can check if it offers the well-known service described below.
If the domain doesn't provide the well-known service, or if it fails the initial step, then the wannabe sender asks for the local part of the user's email address, and proceeds as usual from there.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirm subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* '''Originating domain''' which shall be authenticated,
* '''List-Id''' or similar token, possibly matching the domain.
The user can specify further details, such as:
* '''Expiration date''' of the subscription,
* '''max number of messages''' that will be accepted,
* '''IMAP folder''' where mail from that stream will be delivered,
* '''concealed local part''' that will be returned to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court.
54dd879a6248f95b2507327eb4c42118ec46ec5e
1584
1583
2013-12-18T08:51:46Z
Ale
1
/* Well known service */
wikitext
text/x-wiki
'''Water tight opt-in''' is one such that the three parties involved —sender, receiver, and user— can manage subscriptions.
==Web subscription form==
Web subscription forms would be changed from a single-step "enter your email to subscribe" to a two-step "enter your mail domain" + "enter your local-part".
An additional ''method'' input can let the user decide what action should be taken. Otherwise, if the user enters no at-sign (@) it can be assumed that the value given is a domain. Receiving software usually checks whether the domain has an <code>MX</code> record. In addition, it can check if it offers the well-known service described below.
If the domain doesn't provide the well-known service, or if it fails the initial step, then the wannabe sender asks for the local part of the user's email address, and proceeds as usual from there.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirm subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''Originating domain'' which shall be authenticated,
* ''List-Id'' or similar token, possibly matching the domain.
The user can specify further details, such as:
* ''Expiration date'' of the subscription,
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court.
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
3e31e85a254b587cafd269fde2f5769930339a32
1585
1584
2013-12-18T09:17:01Z
Ale
1
/* Well known service */
wikitext
text/x-wiki
'''Water tight opt-in''' is one such that the three parties involved —sender, receiver, and user— can manage subscriptions.
==Web subscription form==
Web subscription forms would be changed from a single-step "enter your email to subscribe" to a two-step "enter your mail domain" + "enter your local-part".
An additional ''method'' input can let the user decide what action should be taken. Otherwise, if the user enters no at-sign (@) it can be assumed that the value given is a domain. Receiving software usually checks whether the domain has an <code>MX</code> record. In addition, it can check if it offers the well-known service described below.
If the domain doesn't provide the well-known service, or if it fails the initial step, then the wannabe sender asks for the local part of the user's email address, and proceeds as usual from there.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirm subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''expiration date'',
* ''domain'' where the mail stream originates from,
* ''List-Id'', possibly matching the domain, DKIM-signed.
The user can tweak the expiration date and specify further details, such as:
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court. (DKIM is not much useful for signing requests that way, because its key may suddenly expire.)
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
986dfd5d7ac54a51aaf3270b597b730f48b038da
1586
1585
2013-12-23T11:56:45Z
Ale
1
/* One-sided implementations */ chicken and egg
wikitext
text/x-wiki
'''Water tight opt-in''' is one such that the three parties involved —sender, receiver, and user— can manage subscriptions.
==Web subscription form==
Web subscription forms would be changed from a single-step "enter your email to subscribe" to a two-step "enter your mail domain" + "enter your local-part".
An additional ''method'' input can let the user decide what action should be taken. Otherwise, if the user enters no at-sign (@) it can be assumed that the value given is a domain. Receiving software usually checks whether the domain has an <code>MX</code> record. In addition, it can check if it offers the well-known service described below.
If the domain doesn't provide the well-known service, or if it fails the initial step, then the wannabe sender asks for the local part of the user's email address, and proceeds as usual from there.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirm subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''expiration date'',
* ''domain'' where the mail stream originates from,
* ''List-Id'', possibly matching the domain, DKIM-signed.
The user can tweak the expiration date and specify further details, such as:
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court. (DKIM is not much useful for signing requests that way, because its key may suddenly expire.)
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
On the other hand, a marketer would probably not develop any kind of stuff without some minimal support from some relevant number of receivers. It seems more likely that mailbox providers have to be the first mover.
06be7d95eab02a4e4645acae4073b9249999bebb
1587
1586
2014-01-06T11:52:56Z
Ale
1
Clarifications
wikitext
text/x-wiki
'''Water tight opt-in''' is an opt-in that involves three parties —''sender'', ''receiver'', and ''recipient''. It uses disposable addresses (a.k.a. tagged addresses) and web forms.
Definitions:
* The '''recipient''' is the person who is subscribing to a given list,
* the '''receiver''' is her [[wp:Mailbox provider|mailbox provider]],
* the '''sender''' is the list manager, which also manages, directly or indirectly, the web form through which the receiver's address is collected.
==Difference w.r.t. usual Confirmed Opt-In (COI)==
* The recipient delegates to the receiver part of subscription management. This explicitly allows the receiver to learn the details of the recipient's subscriptions (thanks to Richard Clayton for this note.)
* The recipient is authenticated by the receiver when she states her will to subscribe. Details of the subscription, such as how long it should last for and whether to use a newly created disposable address, have configurable default values which can be changed during the subscription process.
* The sender has a chance to skip COI, since the receiver statement suffices. The sender can collect a digital copy of such statement, signed by the mailbox provider.
* The receiver maintains a database of the recipient's subscriptions, whereby she can manage them.
==How does it work==
The recipient interacts with the receiver via another web form, or via a browser add-on. A cooperating sender prepares its web form so as to ease the subscription process; for example, the sender's web form can include a special javascript function that brings up the receiver's web form after the recipient fills in the domain name of the receiver —that is, an email address without an at-sign (<code>@</code>). If the domain does not support water tight opt-in, the function will ask the recipient to enter the local part of her address as well.
For non-cooperating senders, the recipient has to invoke the receiver's web form by herself. This task can be eased by an add-on, as described [[#One-sided implementations|below]].
==Never type an email address in a web form any more==
Logging in on the receiver's web form should make use of form autofill features, unless the recipient uses someone else's browser. Classical mailing lists use a mail-based subscription mechanism (otherwise see [[#Discussion lists|below]].)
By the same rationale that users have been advised not to publish an email address in a web page, users have to be advised neither to type their address into one. Indeed, there is not much difference, except that regular web pages need to wait for a spammer to harvest the addresses written therein, while many web forms are directly connected to the spammer's processor.
'''Note''': We mean no disrespect by using the term ''spammer''. Bulk email is here and won't go away, whereas ''unsolicited'' has such a subtle meaning that it can often be applied to whatever message, irrespectively of it being wanted or not, useful or not, necessary or not. There are unlawful, criminal spammers, but there are legitimate, honest ones. ''Marketer'' may be a more formal term for the latter ones.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirm subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''expiration date'',
* ''domain'' where the mail stream originates from,
* ''List-Id'', possibly matching the domain, DKIM-signed.
The user can tweak the expiration date and specify further details, such as:
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court. (DKIM is not much useful for signing requests that way, because its key may suddenly expire.)
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
On the other hand, a marketer would probably not develop any kind of stuff without some minimal support from some relevant number of receivers. It seems more likely that mailbox providers have to be the first mover.
==Discussion lists==
Discussion lists that present a web interface should perhaps discourage subscribers from using an anonymous disposable address, because that address will be made known to all other subscribed users, who may reply privately and store it in their address books.
List for discussing this particular subject include:
* [http://lists.services.net/cgi-bin/mj_wwwusr/domain=lists.gurus.org?user=&passw=&func=lists-long-full&extra=asrg ASRG],
* [https://spammers.dontlike.us/mailman/listinfo/list SDLU].
aee74c8c909b31bab7eb63be491edd538d6ffe22
1588
1587
2014-01-06T12:01:57Z
Ale
1
typos
wikitext
text/x-wiki
'''Water tight opt-in''' is an opt-in that involves three parties —''sender'', ''receiver'', and ''recipient''. It uses disposable addresses (a.k.a. tagged addresses) and web forms.
Definitions:
* The '''recipient''' is the person who is subscribing to a given list,
* the '''receiver''' is her [[wp:Mailbox provider|mailbox provider]],
* the '''sender''' is the list manager, which also manages, directly or indirectly, the web form through which the recipient's address is collected.
==Difference w.r.t. usual Confirmed Opt-In (COI)==
* The recipient delegates to the receiver part of subscription management. This explicitly allows the receiver to learn the details of the recipient's subscriptions (thanks to Richard Clayton for this note.)
* The recipient is authenticated by the receiver when she states her will to subscribe. Details of the subscription, such as how long it should last for and whether to use a newly created disposable address, have configurable default values which can be changed during the subscription process.
* The sender has a chance to skip COI, since the recipient statement suffices. The sender can collect a digital copy of such statement, signed by the mailbox provider.
* The receiver maintains a database of the recipient's subscriptions, whereby she can manage them.
==How does it work==
The recipient interacts with the receiver via another web form, or via a browser add-on. A cooperating sender prepares its web form so as to ease the subscription process; for example, the sender's web form can include a special javascript function that brings up the receiver's web form after the recipient fills in the domain name —that is, an email address without an at-sign (<code>@</code>). If the domain does not support water tight opt-in, the function will ask the recipient to enter the local part of her address as well.
For non-cooperating senders, the recipient has to invoke the receiver's web form by herself. This task can be eased by an add-on, as described [[#One-sided implementations|below]].
==Never type an email address in a web form any more==
Logging in on the receiver's web form should make use of form autofill features, unless the recipient uses someone else's browser. Classical mailing lists use a mail-based subscription mechanism (otherwise see [[#Discussion lists|below]].)
By the same rationale that users have been advised not to publish an email address in a web page, users have to be advised neither to type their address into one. Indeed, there is not much difference, except that regular web pages need to wait for a spammer to harvest the addresses written therein, while many web forms are directly connected to the spammer's processor.
'''Note''': We mean no disrespect by using the term ''spammer''. Bulk email is here and won't go away, whereas ''unsolicited'' has such a subtle meaning that it can often be applied to whatever message, irrespectively of it being wanted or not, useful or not, necessary or not. There are unlawful, criminal spammers, but there are legitimate, honest ones. ''Marketer'' may be a more formal term for the latter ones.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirms subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''expiration date'',
* ''domain'' where the mail stream originates from,
* ''List-Id'', possibly matching the domain, DKIM-signed.
The user can tweak the expiration date and specify further details, such as:
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court. (DKIM is not much useful for signing requests that way, because its key may suddenly expire.)
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
On the other hand, a marketer would probably not develop any kind of stuff without some minimal support from some relevant number of receivers. It seems more likely that mailbox providers have to be the first mover.
==Discussion lists==
Discussion lists that present a web interface should perhaps discourage subscribers from using an anonymous disposable address, because that address will be made known to all other subscribed users, who may reply privately and store it in their address books.
List for discussing this particular subject include:
* [http://lists.services.net/cgi-bin/mj_wwwusr/domain=lists.gurus.org?user=&passw=&func=lists-long-full&extra=asrg ASRG],
* [https://spammers.dontlike.us/mailman/listinfo/list SDLU].
b7b0c8bca7ff84f1729d922534f7b367042a3262
1589
1588
2014-01-07T16:07:04Z
Ale
1
/* Patents */ new section
wikitext
text/x-wiki
'''Water tight opt-in''' is an opt-in that involves three parties —''sender'', ''receiver'', and ''recipient''. It uses disposable addresses (a.k.a. tagged addresses) and web forms.
Definitions:
* The '''recipient''' is the person who is subscribing to a given list,
* the '''receiver''' is her [[wp:Mailbox provider|mailbox provider]],
* the '''sender''' is the list manager, which also manages, directly or indirectly, the web form through which the recipient's address is collected.
==Difference w.r.t. usual Confirmed Opt-In (COI)==
* The recipient delegates to the receiver part of subscription management. This explicitly allows the receiver to learn the details of the recipient's subscriptions (thanks to Richard Clayton for this note.)
* The recipient is authenticated by the receiver when she states her will to subscribe. Details of the subscription, such as how long it should last for and whether to use a newly created disposable address, have configurable default values which can be changed during the subscription process.
* The sender has a chance to skip COI, since the recipient statement suffices. The sender can collect a digital copy of such statement, signed by the mailbox provider.
* The receiver maintains a database of the recipient's subscriptions, whereby she can manage them.
==How does it work==
The recipient interacts with the receiver via another web form, or via a browser add-on. A cooperating sender prepares its web form so as to ease the subscription process; for example, the sender's web form can include a special javascript function that brings up the receiver's web form after the recipient fills in the domain name —that is, an email address without an at-sign (<code>@</code>). If the domain does not support water tight opt-in, the function will ask the recipient to enter the local part of her address as well.
For non-cooperating senders, the recipient has to invoke the receiver's web form by herself. This task can be eased by an add-on, as described [[#One-sided implementations|below]].
==Never type an email address in a web form any more==
Logging in on the receiver's web form should make use of form autofill features, unless the recipient uses someone else's browser. Classical mailing lists use a mail-based subscription mechanism (otherwise see [[#Discussion lists|below]].)
By the same rationale that users have been advised not to publish an email address in a web page, users have to be advised neither to type their address into one. Indeed, there is not much difference, except that regular web pages need to wait for a spammer to harvest the addresses written therein, while many web forms are directly connected to the spammer's processor.
'''Note''': We mean no disrespect by using the term ''spammer''. Bulk email is here and won't go away, whereas ''unsolicited'' has such a subtle meaning that it can often be applied to whatever message, irrespectively of it being wanted or not, useful or not, necessary or not. There are unlawful, criminal spammers, but there are legitimate, honest ones. ''Marketer'' may be a more formal term for the latter ones.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirms subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''expiration date'',
* ''domain'' where the mail stream originates from,
* ''List-Id'', possibly matching the domain, DKIM-signed.
The user can tweak the expiration date and specify further details, such as:
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court. (DKIM is not much useful for signing requests that way, because its key may suddenly expire.)
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
On the other hand, a marketer would probably not develop any kind of stuff without some minimal support from some relevant number of receivers. It seems more likely that mailbox providers have to be the first mover.
==Patents==
Channelized addresses were described by Robert J. Hall, who filed patent [https://www.google.com/patents/US5930479 US 5930479] on October 21, 1996.
==Discussion lists==
Discussion lists that present a web interface should perhaps discourage subscribers from using an anonymous disposable address, because that address will be made known to all other subscribed users, who may reply privately and store it in their address books.
List for discussing this particular subject include:
* [http://lists.services.net/cgi-bin/mj_wwwusr/domain=lists.gurus.org?user=&passw=&func=lists-long-full&extra=asrg ASRG],
* [https://spammers.dontlike.us/mailman/listinfo/list SDLU].
b0ccceaa9085b3f33584e6e13d8504f8f68fa8aa
1590
1589
2014-01-07T16:11:16Z
Ale
1
/* Caveats */ new section
wikitext
text/x-wiki
'''Water tight opt-in''' is an opt-in that involves three parties —''sender'', ''receiver'', and ''recipient''. It uses disposable addresses (a.k.a. tagged addresses) and web forms.
Definitions:
* The '''recipient''' is the person who is subscribing to a given list,
* the '''receiver''' is her [[wp:Mailbox provider|mailbox provider]],
* the '''sender''' is the list manager, which also manages, directly or indirectly, the web form through which the recipient's address is collected.
==Difference w.r.t. usual Confirmed Opt-In (COI)==
* The recipient delegates to the receiver part of subscription management. This explicitly allows the receiver to learn the details of the recipient's subscriptions (thanks to Richard Clayton for this note.)
* The recipient is authenticated by the receiver when she states her will to subscribe. Details of the subscription, such as how long it should last for and whether to use a newly created disposable address, have configurable default values which can be changed during the subscription process.
* The sender has a chance to skip COI, since the recipient statement suffices. The sender can collect a digital copy of such statement, signed by the mailbox provider.
* The receiver maintains a database of the recipient's subscriptions, whereby she can manage them.
==How does it work==
The recipient interacts with the receiver via another web form, or via a browser add-on. A cooperating sender prepares its web form so as to ease the subscription process; for example, the sender's web form can include a special javascript function that brings up the receiver's web form after the recipient fills in the domain name —that is, an email address without an at-sign (<code>@</code>). If the domain does not support water tight opt-in, the function will ask the recipient to enter the local part of her address as well.
For non-cooperating senders, the recipient has to invoke the receiver's web form by herself. This task can be eased by an add-on, as described [[#One-sided implementations|below]].
==Never type an email address in a web form any more==
Logging in on the receiver's web form should make use of form autofill features, unless the recipient uses someone else's browser. Classical mailing lists use a mail-based subscription mechanism (otherwise see [[#Discussion lists|below]].)
By the same rationale that users have been advised not to publish an email address in a web page, users have to be advised neither to type their address into one. Indeed, there is not much difference, except that regular web pages need to wait for a spammer to harvest the addresses written therein, while many web forms are directly connected to the spammer's processor.
'''Note''': We mean no disrespect by using the term ''spammer''. Bulk email is here and won't go away, whereas ''unsolicited'' has such a subtle meaning that it can often be applied to whatever message, irrespectively of it being wanted or not, useful or not, necessary or not. There are unlawful, criminal spammers, but there are legitimate, honest ones. ''Marketer'' may be a more formal term for the latter ones.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirms subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''expiration date'',
* ''domain'' where the mail stream originates from,
* ''List-Id'', possibly matching the domain, DKIM-signed.
The user can tweak the expiration date and specify further details, such as:
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court. (DKIM is not much useful for signing requests that way, because its key may suddenly expire.)
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
On the other hand, a marketer would probably not develop any kind of stuff without some minimal support from some relevant number of receivers. It seems more likely that mailbox providers have to be the first mover.
==Caveats==
Care must be taken to implement a foolproof system. At a first glance, it might make sense to use an email address that expires after a month for a one-off purpose from a web store. Except that sometimes the customer might like the purchase so much, they decide to buy more stuff, only to find out the order confirmation emails stop arriving. Or the store might have a good reason to contact the consumer - a data breach, a fault discovered in the product - and the emails fail to arrive. (Thanks to Martijn Grooten for this hint.)
==Patents==
Channelized addresses were described by Robert J. Hall, who filed patent [https://www.google.com/patents/US5930479 US 5930479] on October 21, 1996.
==Discussion lists==
Discussion lists that present a web interface should perhaps discourage subscribers from using an anonymous disposable address, because that address will be made known to all other subscribed users, who may reply privately and store it in their address books.
List for discussing this particular subject include:
* [http://lists.services.net/cgi-bin/mj_wwwusr/domain=lists.gurus.org?user=&passw=&func=lists-long-full&extra=asrg ASRG],
* [https://spammers.dontlike.us/mailman/listinfo/list SDLU].
d131993443e455c0a91a5dd7a01e2df6db717663
1591
1590
2014-01-10T08:26:10Z
Ale
1
/* Discussion lists */ was
wikitext
text/x-wiki
'''Water tight opt-in''' is an opt-in that involves three parties —''sender'', ''receiver'', and ''recipient''. It uses disposable addresses (a.k.a. tagged addresses) and web forms.
Definitions:
* The '''recipient''' is the person who is subscribing to a given list,
* the '''receiver''' is her [[wp:Mailbox provider|mailbox provider]],
* the '''sender''' is the list manager, which also manages, directly or indirectly, the web form through which the recipient's address is collected.
==Difference w.r.t. usual Confirmed Opt-In (COI)==
* The recipient delegates to the receiver part of subscription management. This explicitly allows the receiver to learn the details of the recipient's subscriptions (thanks to Richard Clayton for this note.)
* The recipient is authenticated by the receiver when she states her will to subscribe. Details of the subscription, such as how long it should last for and whether to use a newly created disposable address, have configurable default values which can be changed during the subscription process.
* The sender has a chance to skip COI, since the recipient statement suffices. The sender can collect a digital copy of such statement, signed by the mailbox provider.
* The receiver maintains a database of the recipient's subscriptions, whereby she can manage them.
==How does it work==
The recipient interacts with the receiver via another web form, or via a browser add-on. A cooperating sender prepares its web form so as to ease the subscription process; for example, the sender's web form can include a special javascript function that brings up the receiver's web form after the recipient fills in the domain name —that is, an email address without an at-sign (<code>@</code>). If the domain does not support water tight opt-in, the function will ask the recipient to enter the local part of her address as well.
For non-cooperating senders, the recipient has to invoke the receiver's web form by herself. This task can be eased by an add-on, as described [[#One-sided implementations|below]].
==Never type an email address in a web form any more==
Logging in on the receiver's web form should make use of form autofill features, unless the recipient uses someone else's browser. Classical mailing lists use a mail-based subscription mechanism (otherwise see [[#Discussion lists|below]].)
By the same rationale that users have been advised not to publish an email address in a web page, users have to be advised neither to type their address into one. Indeed, there is not much difference, except that regular web pages need to wait for a spammer to harvest the addresses written therein, while many web forms are directly connected to the spammer's processor.
'''Note''': We mean no disrespect by using the term ''spammer''. Bulk email is here and won't go away, whereas ''unsolicited'' has such a subtle meaning that it can often be applied to whatever message, irrespectively of it being wanted or not, useful or not, necessary or not. There are unlawful, criminal spammers, but there are legitimate, honest ones. ''Marketer'' may be a more formal term for the latter ones.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirms subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''expiration date'',
* ''domain'' where the mail stream originates from,
* ''List-Id'', possibly matching the domain, DKIM-signed.
The user can tweak the expiration date and specify further details, such as:
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court. (DKIM is not much useful for signing requests that way, because its key may suddenly expire.)
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
On the other hand, a marketer would probably not develop any kind of stuff without some minimal support from some relevant number of receivers. It seems more likely that mailbox providers have to be the first mover.
==Caveats==
Care must be taken to implement a foolproof system. At a first glance, it might make sense to use an email address that expires after a month for a one-off purpose from a web store. Except that sometimes the customer might like the purchase so much, they decide to buy more stuff, only to find out the order confirmation emails stop arriving. Or the store might have a good reason to contact the consumer - a data breach, a fault discovered in the product - and the emails fail to arrive. (Thanks to Martijn Grooten for this hint.)
==Patents==
Channelized addresses were described by Robert J. Hall, who filed patent [https://www.google.com/patents/US5930479 US 5930479] on October 21, 1996.
==Discussion lists==
Discussion lists that present a web interface should perhaps discourage subscribers from using an anonymous disposable address, because that address will be made known to all other subscribed users, who may reply privately and store it in their address books.
This particular subject was discussed in the following lists (in reverse chronological order):
* [http://lists.services.net/cgi-bin/mj_wwwusr/domain=lists.gurus.org?user=&passw=&func=lists-long-full&extra=asrg ASRG],
* [https://spammers.dontlike.us/mailman/listinfo/list SDLU].
23ebe99c3652799613c09f8af4019af43c2db136
1592
1591
2014-01-10T08:34:59Z
Ale
1
/* Discussion lists */ dates
wikitext
text/x-wiki
'''Water tight opt-in''' is an opt-in that involves three parties —''sender'', ''receiver'', and ''recipient''. It uses disposable addresses (a.k.a. tagged addresses) and web forms.
Definitions:
* The '''recipient''' is the person who is subscribing to a given list,
* the '''receiver''' is her [[wp:Mailbox provider|mailbox provider]],
* the '''sender''' is the list manager, which also manages, directly or indirectly, the web form through which the recipient's address is collected.
==Difference w.r.t. usual Confirmed Opt-In (COI)==
* The recipient delegates to the receiver part of subscription management. This explicitly allows the receiver to learn the details of the recipient's subscriptions (thanks to Richard Clayton for this note.)
* The recipient is authenticated by the receiver when she states her will to subscribe. Details of the subscription, such as how long it should last for and whether to use a newly created disposable address, have configurable default values which can be changed during the subscription process.
* The sender has a chance to skip COI, since the recipient statement suffices. The sender can collect a digital copy of such statement, signed by the mailbox provider.
* The receiver maintains a database of the recipient's subscriptions, whereby she can manage them.
==How does it work==
The recipient interacts with the receiver via another web form, or via a browser add-on. A cooperating sender prepares its web form so as to ease the subscription process; for example, the sender's web form can include a special javascript function that brings up the receiver's web form after the recipient fills in the domain name —that is, an email address without an at-sign (<code>@</code>). If the domain does not support water tight opt-in, the function will ask the recipient to enter the local part of her address as well.
For non-cooperating senders, the recipient has to invoke the receiver's web form by herself. This task can be eased by an add-on, as described [[#One-sided implementations|below]].
==Never type an email address in a web form any more==
Logging in on the receiver's web form should make use of form autofill features, unless the recipient uses someone else's browser. Classical mailing lists use a mail-based subscription mechanism (otherwise see [[#Discussion lists|below]].)
By the same rationale that users have been advised not to publish an email address in a web page, users have to be advised neither to type their address into one. Indeed, there is not much difference, except that regular web pages need to wait for a spammer to harvest the addresses written therein, while many web forms are directly connected to the spammer's processor.
'''Note''': We mean no disrespect by using the term ''spammer''. Bulk email is here and won't go away, whereas ''unsolicited'' has such a subtle meaning that it can often be applied to whatever message, irrespectively of it being wanted or not, useful or not, necessary or not. There are unlawful, criminal spammers, but there are legitimate, honest ones. ''Marketer'' may be a more formal term for the latter ones.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirms subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''expiration date'',
* ''domain'' where the mail stream originates from,
* ''List-Id'', possibly matching the domain, DKIM-signed.
The user can tweak the expiration date and specify further details, such as:
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court. (DKIM is not much useful for signing requests that way, because its key may suddenly expire.)
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
On the other hand, a marketer would probably not develop any kind of stuff without some minimal support from some relevant number of receivers. It seems more likely that mailbox providers have to be the first mover.
==Caveats==
Care must be taken to implement a foolproof system. At a first glance, it might make sense to use an email address that expires after a month for a one-off purpose from a web store. Except that sometimes the customer might like the purchase so much, they decide to buy more stuff, only to find out the order confirmation emails stop arriving. Or the store might have a good reason to contact the consumer - a data breach, a fault discovered in the product - and the emails fail to arrive. (Thanks to Martijn Grooten for this hint.)
==Patents==
Channelized addresses were described by Robert J. Hall, who filed patent [https://www.google.com/patents/US5930479 US 5930479] on October 21, 1996.
==Discussion lists==
Discussion lists that present a web interface should perhaps discourage subscribers from using an anonymous disposable address, because that address will be made known to all other subscribed users, who may reply privately and store it in their address books.
==Discussion==
This particular subject was discussed in the following lists (in reverse chronological order):
* [http://lists.services.net/cgi-bin/mj_wwwusr/domain=lists.gurus.org?user=&passw=&func=lists-long-full&extra=asrg ASRG], 21 dec 2013,
* [https://spammers.dontlike.us/mailman/listinfo/list SDLU], 16 dec 2013.
* [https://ssl.trashmail.net/forum/viewtopic.php?f=2&t=5421&start=24 Trashmail success and failure stories] forum, 6 dec 2013
d792dcac1ae6f6854745862982e394ad24386e34
1593
1592
2014-01-15T08:50:00Z
Ale
1
/* Implementation */ new section
wikitext
text/x-wiki
'''Water tight opt-in''' is an opt-in that involves three parties —''sender'', ''receiver'', and ''recipient''. It uses disposable addresses (a.k.a. tagged addresses) and web forms.
Definitions:
* The '''recipient''' is the person who is subscribing to a given list,
* the '''receiver''' is her [[wp:Mailbox provider|mailbox provider]],
* the '''sender''' is the list manager, which also manages, directly or indirectly, the web form through which the recipient's address is collected.
==Difference w.r.t. usual Confirmed Opt-In (COI)==
* The recipient delegates to the receiver part of subscription management. This explicitly allows the receiver to learn the details of the recipient's subscriptions (thanks to Richard Clayton for this note.)
* The recipient is authenticated by the receiver when she states her will to subscribe. Details of the subscription, such as how long it should last for and whether to use a newly created disposable address, have configurable default values which can be changed during the subscription process.
* The sender has a chance to skip COI, since the recipient statement suffices. The sender can collect a digital copy of such statement, signed by the mailbox provider.
* The receiver maintains a database of the recipient's subscriptions, whereby she can manage them.
==How does it work==
The recipient interacts with the receiver via another web form, or via a browser add-on. A cooperating sender prepares its web form so as to ease the subscription process; for example, the sender's web form can include a special javascript function that brings up the receiver's web form after the recipient fills in the domain name —that is, an email address without an at-sign (<code>@</code>). If the domain does not support water tight opt-in, the function will ask the recipient to enter the local part of her address as well.
For non-cooperating senders, the recipient has to invoke the receiver's web form by herself. This task can be eased by an add-on, as described [[#One-sided implementations|below]].
==Never type an email address in a web form any more==
Logging in on the receiver's web form should make use of form autofill features, unless the recipient uses someone else's browser. Classical mailing lists use a mail-based subscription mechanism (otherwise see [[#Discussion lists|below]].)
By the same rationale that users have been advised not to publish an email address in a web page, users have to be advised neither to type their address into one. Indeed, there is not much difference, except that regular web pages need to wait for a spammer to harvest the addresses written therein, while many web forms are directly connected to the spammer's processor.
'''Note''': We mean no disrespect by using the term ''spammer''. Bulk email is here and won't go away, whereas ''unsolicited'' has such a subtle meaning that it can often be applied to whatever message, irrespectively of it being wanted or not, useful or not, necessary or not. There are unlawful, criminal spammers, but there are legitimate, honest ones. ''Marketer'' may be a more formal term for the latter ones.
==Well known service==
Through this service, a client can learn how to have a confirmation form presented to a user. The confirmation form would behave like a Paypal login-and-pay form. The user logs in and confirms subscription to a given mail stream.
The mail stream provided by the wannabe sender can be characterized by several items, such as:
* ''expiration date'',
* ''domain'' where the mail stream originates from,
* ''List-Id'', possibly matching the domain, DKIM-signed.
The user can tweak the expiration date and specify further details, such as:
* ''max number of messages'' that will be accepted,
* ''IMAP folder'' where mail from that stream will be delivered,
* ''concealed local part'' that will return a disposable address to the wannabe sender.
The user's mailbox provider would return a subscription request to the sender, unless the user cancels the operation. The request shall be digitally signed, and can thus be exhibited to an ESP or to a court. (DKIM is not much useful for signing requests that way, because its key may suddenly expire.)
==One-sided implementations==
A mailbox provider can develop (part of) the required functionality as an interface for creating disposable email addresses. A sort of protocol for doing so is used by [https://ssl.trashmail.net/ TrashMail], who also distribute a FireFox add-on and a PHP script. It currently features the following fields:
* ''Creation date'' of the entry,
* ''disposable address'' returned to the sender,
* ''destination'' address or folder,
* ''description'' by the tool that created the entry,
* ''number of messages'' remaining,
* ''expiration date'',
* ''HTTP address'' of the page that contained the subscription form, and
* ''whitelisting'' options.
For that to evolve into cooperative functionality, there needs to be a relationship between the submission form and the List-Id or similar identifier of the mail stream.
On the other hand, a marketer would probably not develop any kind of stuff without some minimal support from some relevant number of receivers. It seems more likely that mailbox providers have to be the first mover.
==Caveats==
Care must be taken to implement a foolproof system. At a first glance, it might make sense to use an email address that expires after a month for a one-off purpose from a web store. Except that sometimes the customer might like the purchase so much, they decide to buy more stuff, only to find out the order confirmation emails stop arriving. Or the store might have a good reason to contact the consumer - a data breach, a fault discovered in the product - and the emails fail to arrive. (Thanks to Martijn Grooten for this hint.)
==Implementation==
* Javascript, obviously.
* Should use [[wp:Security Assertion Markup Language|SAML]] and/or [http://openid.net/connect/ OpenID Connect]?
==Patents==
Channelized addresses were described by Robert J. Hall, who filed patent [https://www.google.com/patents/US5930479 US 5930479] on October 21, 1996.
==Discussion lists==
Discussion lists that present a web interface should perhaps discourage subscribers from using an anonymous disposable address, because that address will be made known to all other subscribed users, who may reply privately and store it in their address books.
==Discussion==
This particular subject was discussed in the following lists (in reverse chronological order):
* [http://lists.services.net/cgi-bin/mj_wwwusr/domain=lists.gurus.org?user=&passw=&func=lists-long-full&extra=asrg ASRG], 21 dec 2013,
* [https://spammers.dontlike.us/mailman/listinfo/list SDLU], 16 dec 2013.
* [https://ssl.trashmail.net/forum/viewtopic.php?f=2&t=5421&start=24 Trashmail success and failure stories] forum, 6 dec 2013
f7e25720f034087d92138f893f432dd99ca7df82
standard behavior
0
32
1601
1546
2020-07-24T18:48:47Z
Ale
1
<ref> doesn't work, set parentheses instead
wikitext
text/x-wiki
'''Standard behavior''' illustrates email simple store and forward mechanisms, that have been devised long before privacy regulations. Here we describe the most usual patterns that a message may go through, highlighting the problem of managing personal data, a.k.a. personally identifiable data.
Except for the first case, direct delivering, ''store and forward'' involves multiple parties, and thereby involves privacy concerns.
==Direct personal message==
[[File:Normal-delivery.png|300px|thumb|left|Normal delivery]] Normal delivery accounts for the majority of messages. The illustration introduces the concepts of '''MSA''' (''Message Submission Agent'', a.k.a. outgoing mail server) and '''MX''' (''Mail eXchanger'', a.k.a. incoming mail server). All servers are labeled according to the first role they play along the illustrated message path. For example, the MSA also acts as a transmitter, as it determines the relevant destination server, and sends the message there.
The very format ''<recipient@domain>'' of email addresses implies there is an agreement between a recipient and the domain. It is assumed that such agreements cover any privacy concern.
<br style="clear:both" />
==External forwarding==
[[File:Forward.png|300px|thumb|left|Forwarding to a different mail domain]] The original destination <u>''rcpt@domain''</u> is replaced with <u>''rcpt@other-domain''</u> by the <u>forwarding server</u>. The new address is someone's personal data, and its owner deserves full access to it.
We call this ''external'' to distinguish it from role accounts, e.g. ''sales@domain'' and similar forwarding of messages within the same server or mail domain. While for internal forwarding we may assume adequate agreements between users and their mail domains, external organizations require their own agreements. We are not much interested in formal pieces of paper, but rather in the effective ability of users to control how their addresses are used.
Vanity domains' email addresses solely exist for forwarding. In most such cases, they feature full blown web applications that allow users to control their addresses. However, simple ''.forward'' files do not. (In a classical setting, ''.forward'' files live in users' home directories, and hence are under their complete control. Most current mail servers, however, work with ''virtual users'', an arrangement that allows better management and is safer for server's security. Access to ''.forward'' files is an oversight originating from the fact that the fundamental principle, that email addresses shall be under the complete control of their owners, although respected, was never made explicit in SMTP.) They are part of the recommended procedure for changing email address, which may well be considered a necessary part of the mail system.
<br style="clear:both" />
==Newsletters and announcements==
[[File:List.png|300px|thumb|left|Newsletters and mailing lists]] Newsletters are the long established case where privacy rules get broken. Technically, they are the same as mailing lists. However, the semantics is very different. Most mailing list are very respectful of privacy: they require explicit user's subscription, which is double checked so that it is really difficult to subscribe someone else, and they regularly send unsubscribe instructions. Newsletters and single announcements are a means for advertising something, and only in a few cases they collect subscriptions regularly.
Authors submit the message to the list exploder for <u>''list@domain''</u>. That is, they don't manually type addresses, nor select them from public directories, for each message they send. Rather, they maintain a database from which destination addresses can be extracted by the exploder using convenient criteria. Users shall be able to access the data records that concern them. However, seeking users' confirmation by sending them an email message upon insertion is grotesque, since message-sending is not yet confirmed.
Senders' requirement is to build those databases. In several cases, sending organizations lack the prestige, fame, and reputation for enticing users to subscribe spontaneously, and thus collect addresses in various ways. We are not much interested in ''how'' addresses are collected. However, there is a precise moment when an address is made available to an exploder, with given extraction criteria, a.k.a. profiles. An agreement with the subject must be sought after that moment, and before any message that matches those criteria is actually sent. Thus, automating this kind of agreement is apparently the kind of solution we seek. (Users might configure their preferences, on their mail servers, specifying what they wish to do for a [[forwarding agreement]] proposal that makes their mailbox the target of a given message or series of messages. For example, they might specify, for any category of message, whether they wish to automatically deny or accept the agreement, and how they'd like to be notified of this fact. Categories of messages might be defined by means of ''Solicitation-keywords'', as defined in RFC 3865.)
<br style="clear:both" />
==External backup MX==
[[File:Backup-mx.png|300px|thumb|left|Primary mail exchanger is unreachable, message is delivered through a backup MX]] It used to be rather common to have ''external'' backup MXes. These were machines configured to accept mail for a different domain, without being able to state the validity of its addresses. They should only be used when the main (or primary) server experiences a network outage.
Nowadays, organizations that operate on a single network have given up using backup MXes. Until networks work reliably, they are not needed. Old-style backup MXes accept messages destined to ''non-existent@domain'', and attempt to send them to the main server, with embarrassing behavior about delivery status notifications. Larger organizations distribute their users' data so that any server can determine whether a mailbox exists. If they are distributed evenly around the globe, their mail systems may work even in case solar flares tamper with telecommunications.
Backup MXes operated by 3rd parties pose a problem that has a common facet with that of newsletters. Assume a backup MX has been fed with a hashed list of addresses; that is, it can compute a one-way hash of any address so as to determine whether it is listed. Since addresses are hidden, such feed doesn't require special interaction with each subject, although proper notification is appropriate. When the backup MX learns of the existence of one of those addresses --after a positive lookup-- it moves it from the hashed list and makes it available on a cleartext one: on performing such operation, it is in the same condition of a newsletter exploder acquiring a new address, therefore it can solve the problem by the same means.
<br style="clear:both" />
==Conclusions==
Getting into an agreement would not be a tough procedure if there is a standard way to automate it. The [[solution proposed]] provides for procedures to automatically negotiate agreements, and manage the required passwords for ''SMTP Authentication''. As a result, MX servers will have lists of effective agreements, that they can put in the hands of the corresponding subjects.
42d5daee84e25d11ceb58e393d337f2d4c29ac6a
Backup MX
0
26
1602
1558
2020-10-10T09:54:50Z
Ale
1
Do references w/o <ref>, fix link for [1].
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages.
Server outages are a problem also for retrieving mail, via IMAP or POP. It may make sense to run a backup MX in case backup hosts are available for retrieving mail, in a fault-tolerant infrastructure. Minor annoyance may result from non-compliant transmitters that are configured with an unacceptably low retry interval. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.'' A few postmasters configure much shorter intervals, perhaps because they think that delayed DSNs are difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days.
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message to be timely delivered from the US to Europe even while the Atlantic link is down.
A third reason for setting up a "backup MX" is to explicitly acquire connectivity even when no outage disrupts normal operations. For example, the target host is on Mars and can be accessed, easily and normally, by other Martian hosts. However,
for a host on Earth, the target host will rarely be
reachable via a normal TCP/SMTP connection and the
intermediate MX host may have the needed delay-tolerant
machinery installed[1]
On the Earth, a more common example is provided by (large) enterprises who operate dedicated boundary servers as their MX platforms, and handle final delivery by an entirely different set of servers often totally invisible to the outside user.[2]
In any case, SMTP provides for a default for transferring mail from the backup MX to the target host. That is not a requirement, though. LMTP (RFC 2033), UUCP (RFC 976), or any any other mutually-acceptable transport mechanism may do.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. They are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen, e.g. because of solar flares[3].
== Alternatives and requirements ==
The [[solution proposed]] for forwarding may somewhat lend itself for also doing backup MXes. That scenario implies that a backup MX has implicit [[forwarding recipe]]s for all users to all more preferred servers in the domain being backed up. The backup server would still have to negotiate a [[forwarding agreement]] in each case where a message actually has to go through for the first time. (Existing recipes are to be searched before implicit ones.)
A cute trick to initialize the system so that it doesn't have to reply 4xx codes until agreements are finalized, which is likely to happen if the primary host is down, is to provide a list of hashed email addresses. That way, a backup MX may check that a given address actually exists, and accept it, being confident that the primary server will accept it in turn. The forwarding agreement will be negotiated when the primary (or a more preferred secondary) comes up. That circumstance more or less coincides with the moment when the cleartext address corresponding to the hashed entry becomes known at the server. Since provisions for accepting forwarding agreements from a backup MX should have been set up already at the primary's, we can regard as substantially irrelevant the short period of time while the first message for a given address remains stored in the backup MX's cache. (During that time, the server knows the email address without being bound by an agreement.)
Besides the list of hashes, the ''initialization data'', may contain regular expressions to account for subaddresses, prefixes, catch-all's, honeypots, etcetera. More meta data may be needed. Provisions to periodically refresh the initialization data are also needed. Changes in the DNS that add or remove MXes, or just change preferences, have to be dealt with.
End users should not be able to delete their forwarding agreement at a backup MX, unless they also delete their mailbox at the primary MX. Blocking such agreements, i.e. leaving an existing recipe in place while configuring it to reply ''551 User not local'', may result in some disruption and noncompliance. Such blocking may be disallowed by domain policies. At any rate, privacy concerned users will gain the ability to retrieve the effective list of servers where their email addresses are stored (a somewhat idealistic wish, until some marketing function will say otherwise.)
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
* The [http://www.imc.org/ietf-smtp/mail-archive/msg05696.html ietf-smtp thread] that inspired this page
* [[wp:MX record#The backup MX]]
== References ==
# John Klensin, [https://www.mhonarc.org/archive/html/ietf-smtp/2009-05/msg00050.html ietf-smtp mailing list], Sat, 23 May 2009 11:10:48 -0400
# Malcolm Weir, [http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg35222.html courier-users], Wed, 22 Sep 2010 16:00:19 -0700
# [http://www.nasa.gov/topics/solarsystem/features/spaceweather_hazard.html NASA-Funded Study Reveals Hazards of Severe Space Weather] 1 May 2009
<references />
85e39737e32256299753a0274de58d9c43966bed
1603
1602
2020-12-21T11:38:48Z
Ale
1
/* Why have a backup MX */ Add from mailop thread December 2020
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages.
Server outages are a problem also for retrieving mail, via IMAP or POP. It may make sense to run a backup MX in case backup hosts are available for retrieving mail, in a fault-tolerant infrastructure. Minor annoyance may result from non-compliant transmitters that are configured with an unacceptably low retry interval. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.'' A few postmasters configure much shorter intervals, perhaps because they think that delayed DSNs are difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days.
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message to be timely delivered from the US to Europe even while the Atlantic link is down.
A third reason for setting up a "backup MX" is to explicitly acquire connectivity even when no outage disrupts normal operations. For example, the target host is on Mars and can be accessed, easily and normally, by other Martian hosts. However,
for a host on Earth, the target host will rarely be
reachable via a normal TCP/SMTP connection and the
intermediate MX host may have the needed delay-tolerant
machinery installed[1]
On the Earth, a more common example is provided by (large) enterprises who operate dedicated boundary servers as their MX platforms, and handle final delivery by an entirely different set of servers often totally invisible to the outside user.[2]
In any case, SMTP provides for a default for transferring mail from the backup MX to the target host. That is not a requirement, though. LMTP (RFC 2033), UUCP (RFC 976), or any any other mutually-acceptable transport mechanism may do.
=== Google ===
Digging for gmail.com's MXes brings about quite some:
;; ANSWER SECTION:
gmail.com. 473 IN MX 30 alt3.gmail-smtp-in.l.google.com.
gmail.com. 473 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 473 IN MX 10 alt1.gmail-smtp-in.l.google.com.
gmail.com. 473 IN MX 40 alt4.gmail-smtp-in.l.google.com.
gmail.com. 473 IN MX 20 alt2.gmail-smtp-in.l.google.com.
They do so for two reasons: most mailers will retry immediately on some connection errors (even as late as starttls or helo) but only if you have "more" hosts/IPs for them to try. With load balancers, there's no other way to tell remote servers to try again quickly.
The other reason is that they are able to vend an IP to DNS requests based on load/availability and closeness to the requester. Their alt addresses vend other data centers down the list, which helps move the traffic in the first minutes of unavailability before the automated systems catch up and the DNS ttl expires.
Ah, and they also used multiple MXes to roll out changes. For example, when they rolled out ipv6 addresses, they added it on a higher number MX first.
=== [https://wiki.junkemailfilter.com/index.php/Project_Tar Project Tar] and [http://nolisting.org/ nolisting] ===
The approach preferred by Grant Taylor:
# Point the primary MX at a server with nothing listening. It will send TCP Resets —known as "No Listing", a variant of "Grey Listing".— I have yet to see any negative side effects with this.
# Point the secondary MX at your main mail server —Business as usual.
# Optionally - Point the tertiary at your backup mail server.
# Point the last MX at something like Project Tar.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. They are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen, e.g. because of solar flares[3].
== Alternatives and requirements ==
The [[solution proposed]] for forwarding may somewhat lend itself for also doing backup MXes. That scenario implies that a backup MX has implicit [[forwarding recipe]]s for all users to all more preferred servers in the domain being backed up. The backup server would still have to negotiate a [[forwarding agreement]] in each case where a message actually has to go through for the first time. (Existing recipes are to be searched before implicit ones.)
A cute trick to initialize the system so that it doesn't have to reply 4xx codes until agreements are finalized, which is likely to happen if the primary host is down, is to provide a list of hashed email addresses. That way, a backup MX may check that a given address actually exists, and accept it, being confident that the primary server will accept it in turn. The forwarding agreement will be negotiated when the primary (or a more preferred secondary) comes up. That circumstance more or less coincides with the moment when the cleartext address corresponding to the hashed entry becomes known at the server. Since provisions for accepting forwarding agreements from a backup MX should have been set up already at the primary's, we can regard as substantially irrelevant the short period of time while the first message for a given address remains stored in the backup MX's cache. (During that time, the server knows the email address without being bound by an agreement.)
Besides the list of hashes, the ''initialization data'', may contain regular expressions to account for subaddresses, prefixes, catch-all's, honeypots, etcetera. More meta data may be needed. Provisions to periodically refresh the initialization data are also needed. Changes in the DNS that add or remove MXes, or just change preferences, have to be dealt with.
End users should not be able to delete their forwarding agreement at a backup MX, unless they also delete their mailbox at the primary MX. Blocking such agreements, i.e. leaving an existing recipe in place while configuring it to reply ''551 User not local'', may result in some disruption and noncompliance. Such blocking may be disallowed by domain policies. At any rate, privacy concerned users will gain the ability to retrieve the effective list of servers where their email addresses are stored (a somewhat idealistic wish, until some marketing function will say otherwise.)
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
* The [http://www.imc.org/ietf-smtp/mail-archive/msg05696.html ietf-smtp thread] that inspired this page
* [[wp:MX record#The backup MX]]
== References ==
# John Klensin, [https://www.mhonarc.org/archive/html/ietf-smtp/2009-05/msg00050.html ietf-smtp mailing list], Sat, 23 May 2009 11:10:48 -0400
# Malcolm Weir, [http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg35222.html courier-users], Wed, 22 Sep 2010 16:00:19 -0700
# [http://www.nasa.gov/topics/solarsystem/features/spaceweather_hazard.html NASA-Funded Study Reveals Hazards of Severe Space Weather] 1 May 2009
<references />
401f1136b2121d7ef2ac69f804d439d2f5f54394
1604
1603
2020-12-21T16:37:38Z
Ale
1
/* Project Tar and nolisting */
wikitext
text/x-wiki
A '''backup MX''', also called a '''secondary MX''', is an optional server that accepts mail for the target domain on behalf of the ''primary MX''. It does not store messages in users' mailboxes, but will attempt to relay them to a primary server.
== Why have a backup MX ==
There are two main reasons why a primary MX may not be reachable: Server or network outages.
Server outages are a problem also for retrieving mail, via IMAP or POP. It may make sense to run a backup MX in case backup hosts are available for retrieving mail, in a fault-tolerant infrastructure. Minor annoyance may result from non-compliant transmitters that are configured with an unacceptably low retry interval. According to RFC 5321, ''the give-up time generally needs to be at least 4-5 days.'' A few postmasters configure much shorter intervals, perhaps because they think that delayed DSNs are difficult to understand for their users. That way, they won't be able to cope with a target host being temporarily down for a few days.
Network outages are more subtle. There was an era when backup MXes were useful to deal with networks that didn't have routes to some parts of the net. That's a pretty small niche now. However, asymmetric routing faults are still pretty common, especially in developing countries. A conservative setup may provide for a backup MX somewhere else that has a backup link to get mail to the primary when regular connectivity isn't working. An additional concern is that backbone links may go down due to [http://science.nasa.gov/headlines/y2006/10mar_stormwarning.htm solar activity], terrorism, or war. A backup MX in Australia, for example, may make a message to be timely delivered from the US to Europe even while the Atlantic link is down.
A third reason for setting up a "backup MX" is to explicitly acquire connectivity even when no outage disrupts normal operations. For example, the target host is on Mars and can be accessed, easily and normally, by other Martian hosts. However,
for a host on Earth, the target host will rarely be
reachable via a normal TCP/SMTP connection and the
intermediate MX host may have the needed delay-tolerant
machinery installed[1]
On the Earth, a more common example is provided by (large) enterprises who operate dedicated boundary servers as their MX platforms, and handle final delivery by an entirely different set of servers often totally invisible to the outside user.[2]
In any case, SMTP provides for a default for transferring mail from the backup MX to the target host. That is not a requirement, though. LMTP (RFC 2033), UUCP (RFC 976), or any any other mutually-acceptable transport mechanism may do.
=== Google ===
Digging for gmail.com's MXes brings about quite some:
;; ANSWER SECTION:
gmail.com. 473 IN MX 30 alt3.gmail-smtp-in.l.google.com.
gmail.com. 473 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 473 IN MX 10 alt1.gmail-smtp-in.l.google.com.
gmail.com. 473 IN MX 40 alt4.gmail-smtp-in.l.google.com.
gmail.com. 473 IN MX 20 alt2.gmail-smtp-in.l.google.com.
They do so for two reasons: most mailers will retry immediately on some connection errors (even as late as starttls or helo) but only if you have "more" hosts/IPs for them to try. With load balancers, there's no other way to tell remote servers to try again quickly.
The other reason is that they are able to vend an IP to DNS requests based on load/availability and closeness to the requester. Their alt addresses vend other data centers down the list, which helps move the traffic in the first minutes of unavailability before the automated systems catch up and the DNS ttl expires.
Ah, and they also used multiple MXes to roll out changes. For example, when they rolled out ipv6 addresses, they added it on a higher number MX first.
=== [https://wiki.junkemailfilter.com/index.php/Project_Tar Project Tar] and [http://nolisting.org/ nolisting] ===
The approach preferred by Grant Taylor:
# Point the primary MX at a server with nothing listening. It will send TCP Resets —known as "No Listing", a variant of "Grey Listing".— I have yet to see any negative side effects with this.
# Point the secondary MX at your main mail server —Business as usual.
# Optionally - Point the tertiary at your backup mail server.
# Point the last MX at something like Project Tar.
Another participant report getting some hours delay with nolisting, and prefers (smart) greylisting.
== Why not to have a backup MX ==
With multiple connections and good hardware, it is not difficult to have 99+% uptime. Considering that performance an indicator of future results, backup MXes can be ruled out. However, the real reason for doing so is [[wp:Backscatter (e-mail)|backscatter]].
According to current standards and best practices, in order to setup a backup MX for ''example.com'', it is enough to
# configure the backup server, e.g. ''backup.example.org'', to accept mail for ''example.com'', and
# add a record in ''example.com'' DNS zone, saying that ''backup.example.org'' is an MX server with less preference (higher number) than the primary.
In principle, a client should attempt to deliver mail at the target domain's ''preferred'' (primary) server. However, spammers are exempted, and it is not easy for a secondary server to establish whether a client could have reached the primary at a given time (if the secondary can reach the primary, the primary may attempt to trace its route to the client and communicate the result back to the secondary.) A backup MX should accept mail destined to ''any'' user of the domain backed up (''example.com''), unless it has a copy of the users' database.
Currently, organizations that coordinate several servers across various networks, may internally arrange for a cache of the users database to be available at a backup MX's. Organizations whose networks would require to outsource them, while primary MXes are contracted in, cannot do that. They are better off avoiding a backup MX, because mail accepted by the backup for nonexistent users would result in backscatter. Thus, they may be in for a hard surprise in case connections worsen, e.g. because of solar flares[3].
== Alternatives and requirements ==
The [[solution proposed]] for forwarding may somewhat lend itself for also doing backup MXes. That scenario implies that a backup MX has implicit [[forwarding recipe]]s for all users to all more preferred servers in the domain being backed up. The backup server would still have to negotiate a [[forwarding agreement]] in each case where a message actually has to go through for the first time. (Existing recipes are to be searched before implicit ones.)
A cute trick to initialize the system so that it doesn't have to reply 4xx codes until agreements are finalized, which is likely to happen if the primary host is down, is to provide a list of hashed email addresses. That way, a backup MX may check that a given address actually exists, and accept it, being confident that the primary server will accept it in turn. The forwarding agreement will be negotiated when the primary (or a more preferred secondary) comes up. That circumstance more or less coincides with the moment when the cleartext address corresponding to the hashed entry becomes known at the server. Since provisions for accepting forwarding agreements from a backup MX should have been set up already at the primary's, we can regard as substantially irrelevant the short period of time while the first message for a given address remains stored in the backup MX's cache. (During that time, the server knows the email address without being bound by an agreement.)
Besides the list of hashes, the ''initialization data'', may contain regular expressions to account for subaddresses, prefixes, catch-all's, honeypots, etcetera. More meta data may be needed. Provisions to periodically refresh the initialization data are also needed. Changes in the DNS that add or remove MXes, or just change preferences, have to be dealt with.
End users should not be able to delete their forwarding agreement at a backup MX, unless they also delete their mailbox at the primary MX. Blocking such agreements, i.e. leaving an existing recipe in place while configuring it to reply ''551 User not local'', may result in some disruption and noncompliance. Such blocking may be disallowed by domain policies. At any rate, privacy concerned users will gain the ability to retrieve the effective list of servers where their email addresses are stored (a somewhat idealistic wish, until some marketing function will say otherwise.)
== See also ==
* [[boundary#Backup MXes]]
* [[forwarding recipe#Backup MXes]]
* The [http://www.imc.org/ietf-smtp/mail-archive/msg05696.html ietf-smtp thread] that inspired this page
* [[wp:MX record#The backup MX]]
== References ==
# John Klensin, [https://www.mhonarc.org/archive/html/ietf-smtp/2009-05/msg00050.html ietf-smtp mailing list], Sat, 23 May 2009 11:10:48 -0400
# Malcolm Weir, [http://www.mail-archive.com/courier-users@lists.sourceforge.net/msg35222.html courier-users], Wed, 22 Sep 2010 16:00:19 -0700
# [http://www.nasa.gov/topics/solarsystem/features/spaceweather_hazard.html NASA-Funded Study Reveals Hazards of Severe Space Weather] 1 May 2009
<references />
ec7c6c63da6ca035fc510cfcbb76e666b8f9e7fc
Main Page
0
1
1610
1609
2023-10-13T08:56:37Z
Ale
1
/* Legal conundrum */ link https://www.eff.org/deeplinks/2023/08/californias-delete-act-protects-us-data-brokers
wikitext
text/x-wiki
Email addresses are personal data notoriously being abused. There is an ongoing quest for anti-spam techniques. However, little effort is being done to verify compliant controllers, thereby leaving a wide "gray" area and putting email abuse down to a fuzzy concept.
== Rationale ==
Both personal messaging and direct marketing would benefit from an unpolluted communication environment. Pollution results from insanely conceiving sales like a prey-predator relationship with customers. Production and distribution of goods and services should rather be a symbiotic relationship. The minority working against that ought to be pushed off. A ''responsible marketing'' is the precondition for commercial strength in the [[wp:Information Age]].
== The problem ==
[[File:List.png|200px|thumb|left|Sending messages to a list is one of the [[standard behavior]]s.]] There is an outstanding feature of sending bulk messages that characterizes email: the destination addresses can be held on a ''list exploder''. Rather than typing addresses, or retrieving them interactively from personal or public address books, the sender sends to a ''pseudo-mailbox'' that the list exploder uses to select addresses from a local database. Mailing lists, newsletters, and dot-forwards (the best surrogate of email address portability) all require that recipients' addresses be stored on a mail server's file system.
[[wp:Email Authentication]] is typically baffled by indirect mail flows. [[wp:Sender Policy Framework|SPF]] breaks forwarding by design. [[wp:DomainKeys Identified Mail|DKIM]] should withstand forwarding. However, occasional alterations or deliberate, legitimate additions break signatures as well. This state of affairs hinders the possibility to use domain authentication as a means to control email abuse. If it were not for forwarding, it would be possible to build reliable reputation systems. That way, authors would have to be responsible for what they send.
A possible mitigation is to pair the email addresses stored on a list exploder with tags stored at the corresponding receivers, so that the latter can categorize indirect mail flows and allow their users to control them. This idea is drafted in [https://datatracker.ietf.org/doc/html/draft-vesely-fix-forwarding Agreements To Fix Forwarding]
== Legal conundrum ==
In most countries, storing personal data on a server should be controlled by law. In Europe, in particular, this is never done in compliance with the letter of [http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31995L0046:EN:HTML Directive 95/46/EC]. Mailing lists comply with the spirit of 95/46/EC, but then they were run in the same way even before 1995, when the Directive was issued. '''2023 update:''' [https://www.eff.org/deeplinks/2023/08/californias-delete-act-protects-us-data-brokers California's DELETE Act Protects Us From Data Brokers].
Laws have the nasty habit of snubbing technology. Possibly, they do so in order to address many technologies at once, but the result is often the opposite, to miss all of them at the same time. Email is sometimes assimilated to telephone or fax calls, sometimes to traditional paper mail, at times even to newspaper publishing. Such ambiguous feeling sorts little practical effects, if any. In particular:
* while data controllers are allowed to build databases of subjects, subjects are inequitably hindered from building databases of controllers,
* mailing lists have no means to prove subscriptions,
* newsletters don't allow recipients to directly control the forwarding mechanism,
* illegal disclosure of email addresses cannot be detected,
* responsibility for injecting spam remains ambiguous,
* bounces from forwarders may reveal recipients' identities thereby betraying any anonymity concern that forwarding might have implied.
One of the downsides of [[wp:Data Protection Directive]] is the work required for collecting subjects' consent. For email use, paperwork-based procedures are rather unpractical and apparently clash with the rest of computer-based procedures. On the other hand, since spam is a major concern, email servers run a number of checks trying to ascertain the legitimacy of incoming mail; however, recipient's consent cannot be checked because the paperwork produced to comply with the law is not machine-readable.
There is an EU regulation, [[wp:eIDAS]], a standard developed for transactions in the EU single market. It can be considered a sort of S/MIME extension; that is, it features centralized key management -the main difference w.r.t. the PGP suite. That way, data subject's consent could by acquired by means of a ''trust service provider'' according to regulation. A statement like this would be consistent with law-regulated privacy protection.
== Triple Opt-In ==
[[wp:Opt in email]] is the mail that users receive because they subscribed.
''Double opt-in'' is a technique to confirm subscriptions. The server tests a new user's email address right after getting it, requiring the user to confirm the reception of a unique token, as an integral part of the subscription process. That way the operator knows that email addresses are correct and belongs to the subscribers. List operators can set up double opt-in on their own, relying on the fact that human subscribers can follow simple instructions. However, malicious operators can easily build fake opt-in evidence.
''Triple opt-in'' would be a kind of confirmed opt-in that requires three parties —the user, the user's mail server, and the list server— to interact with one another in order to complete each subscription. Differently from double opt-in, triple opt-in would require a specific protocol intentionally conceived to allow the two involved servers to exchange the relevant data. This protocol can be designed so as to fix forwarding in general; that is, not only bulk mail and lists, but also dot-forward files and backup MXes.
===Criticism===
The main reason why that kind of authentication won't come is that it implies a trust between users and their mailbox providers. Such trust may seem to be taken for granted, considering, for example, that forgotten passwords are reset through email. A person's email address has become an identity token. Yet, there are users who hardly cope with having to entrust their communications to a third party suspected of sniffing it, profiling and reselling private data, and worse. Things would be different if the mailbox provider were the server of a household, of a company, a club, or similar associations. In fact, the 'domain-part' of an address used to characterize people. Nowadays, everyone has 'gmail'. There are two reasons for this state of affairs. One is that running a mail server is not so straightforward. The other one is that server connections cost much more than residential ones. Having to put the server at the mercy of an external admin doesn't seem to be much different than letting the external admin manage the mail directly, as far as privacy is concerned.
A reason to avoid the term ''triple opt-in'' altogether is that it is being used with a different (marketing) meaning, see e.g. [http://www.mmaglobal.com/wiki/triple-opt here].
An additional weakness is that a user's mail server can just be grateful for the information supplied, and decline to send a proper acknowledge to the wannabe sender. Since the sender is doing this in order to have such legal proof of its conduct, lazy mailbox provider behavior can hamper a naive implementation.
Let me name this [[Water tight opt-in]], following David Hofstee.
== A consent-exchange Internet protocol for email users ==
A software tool for putting users in control of their email address data, even if stored at remote servers, would be generally useful. It would supply users with automatically updated lists of subscriptions and redirections, and it would provide servers with yet another tool to dominate spam. This tool ''could'' gain interest if it also stipulates means to obtain proofs of consent with legal standing. It is necessary to involve the [[wp:Article 29 Working Party]] for this, because the current formulation of the Directive regards the transmission of data over a network as an unlawful form of processing.
The target is an Internet Standard that spells out how to keep proof that a data subject granted her/his consent for processing what data to which controller. The email address is the key part of the transmitted data, although some controllers also collect names, birth days, and similar details. It is safe to assume that data subjects trust their mail servers as far as this kind of data is concerned, and these servers are able to authenticate their users, therefore it is natural to identify mail servers as one of the actors in the consent exchange. The other actors are the controllers' computers and, in case of interactive exchanges, the data subjects through their PCs.
The expected advantages include
* an automatically updated list of subscriptions and redirections,
* actual possibility to erase or rectify the data in each entry,
* easy verification of legitimate behavior,
* catching some illegitimate disclosures of addresses,
* better anti-spam filtering by whitelisting legitimate messages, and
* enabling automation of abuse reporting.
=== Update 2018 ===
The new [http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 REGULATION 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL] of 27 April 2016, article 68, states (my enhancing):
<blockquote>
To further strengthen the control over his or her own data, where the processing of personal data is carried out by automated means, the data subject should also be allowed to receive personal data concerning him or her which he or she has provided to a controller in a structured, commonly used, machine-readable and interoperable format, and to transmit it to another controller. '''Data controllers should be encouraged to develop interoperable formats that enable data portability.''' That right should apply where the data subject provided the personal data on the basis of his or her consent or the processing is necessary for the performance of a contract. It should not apply where processing is based on a legal ground other than consent or contract. By its very nature, that right should not be exercised against controllers processing personal data in the exercise of their public duties. It should therefore not apply where the processing of the personal data is necessary for compliance with a legal obligation to which the controller is subject or for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller. The data subject's right to transmit or receive personal data concerning him or her should not create an obligation for the controllers to adopt or maintain processing systems which are technically compatible. Where, in a certain set of personal data, more than one data subject is concerned, the right to receive the personal data should be without prejudice to the rights and freedoms of other data subjects in accordance with this Regulation. Furthermore, that right should not prejudice the right of the data subject to obtain the erasure of personal data and the limitations of that right as set out in this Regulation and should, in particular, not imply the erasure of personal data concerning the data subject which have been provided by him or her for the performance of a contract to the extent that and for as long as the personal data are necessary for the performance of that contract. Where technically feasible, the data subject should have the right to have the personal data transmitted directly from one controller to another.
</blockquote>
Besides all the limitations intended to safeguard data controllers, it clearly calls for such a standard.
=== Update 2023 ===
After more thinking, catching both user confirmation to the mailing list and user's mailbox provider consent to pass the mail flow in a single gesture is too much. The protocol shall provided for both points to be done asynchronously.
== DNS declaration of mailing list ==
Yet another idea is to use DNS RRs to declare that a given email address is a mailing list (suggested by John Levine [http://www.ietf.org/mail-archive/web/ietf-822/current/msg06714.html here]). It is exemplified as
<hash of ietf-822>._mayresign.ietf.org TXT "v=MR1; d=ietf.org"
That says the ietf-822 at ietf.org list is signed with d=ietf.org. If a domain contains only mailing lists, you can use a wildcard
*._mayresign.lists.iecc.com TXT "v=MR1; d=lists.iecc.com"
A submission server can then derive that one of its users is a subscriber of a list declared that way.
== Anti-spam effect==
The majority of spam these days is utterly illegal just about everywhere, sent using stolen resources advertising fraudulent stuff. The ''triple opt-in'' protocol outlined here can only control legal spam. However, it is not straightforward to tell legal and illegal spam apart, currently. A consent-exchange protocol paired with a buddy list could almost do it, thereby allowing automated anti-spam action.
<!-- old stuff
Forwarding is an agreement between two entities, the owners of the relevant mailboxes. The [[solution proposed]] is designed so as to reflect this property; in particular, it provides for a ''standard way'' for recipients to learn that their mailbox address has been configured as the target of a forwarding recipe.
The ''opt-in'' and ''opt-out'' methods have been discussed at length, and are ratified in a number of [[privacy laws]]. The FixForwarding solution provides for an implementation for some of those recommendations, not otherwise formalized by the [[wp:IETF|IETF]].
Are we serious about using email?
-->
== Papers ==
A nice taxonomy of email forwarding methods and weaknesses thereof, as of 2023, is given by [https://arxiv.org/search/cs?searchtype=author&query=Liu%2C+E Enze Liu] et al. [https://arxiv.org/abs/2302.07287 Forward Pass: On the Security Implications of Email Forwarding Mechanism and Policy].
3df1c4ea713be5fccd24a3cd82664110c96397c9